首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求怎么限制一天内给一个手机重复发送相同内容的触发器

2012-03-23 
求如何限制一天内给一个手机重复发送相同内容的触发器求如何限制一天内给一个手机重复发送相同内容的触发

求如何限制一天内给一个手机重复发送相同内容的触发器
求如何限制一天内给一个手机重复发送相同内容的触发器
:表格式


mobile, Msg, state, sendyorn, sendtime, id, senduser, CommPort



id是自动增长的 sendtime是短信发送时间
  想加个触发器:想加给一个手机号一天发一个内容则只能发一次.发第二次会提示错误已重复发送.


谢谢

[解决办法]
貌似可以创建一个JOB来实现??
[解决办法]
创建一个定时JOB,每天执行一次
[解决办法]
这个用程序实现比较好,触发器的话,等一会我写给你
[解决办法]

SQL code
create table msg_mobile(mobile varchar(20), Msg varchar(100), state varchar(20), sendyorn varchar(20), sendtime datetime, id int not null identity(1,1) primary key, senduser varchar(20), CommPort varchar(10))insert into msg_mobile (mobile,Msg,sendtime) values('13000010001','test',getdate())select * from msg_mobilecreate  TRIGGER [dbo].[trg_msg_mobile_insert] ON [dbo].[msg_mobile] FOR INSERTAS        if (select count(*) from msg_mobile        where exists        (select * from inserted            where inserted.mobile = msg_mobile.mobile            and datediff(day,inserted.sendtime,msg_mobile.sendtime) = 0            and inserted.msg = msg_mobile.msg)) >1    begin        raiserror 99999 '不能在同一天给同一用户发送同一内容的短信!'        rollback tran        return     end    insert into msg_mobile (mobile,Msg,sendtime) values('13000010001','test',getdate())    select * from msg_mobile/****消息 99999,级别 16,状态 1,过程 trg_msg_mobile_insert,第 12 行不能在同一天给同一用户发送同一内容的短信!消息 3609,级别 16,状态 1,第 1 行事务在触发器中结束。批处理已中止。***/insert into msg_mobile (mobile,Msg,sendtime) values('13000010001','test',getdate())    insert into msg_mobile (mobile,Msg,sendtime) values('13000010002','test',getdate())    insert into msg_mobile (mobile,Msg,sendtime) values('13000010002','test',getdate())    insert into msg_mobile (mobile,Msg,sendtime) values('13000010003','test',getdate())    insert into msg_mobile (mobile,Msg,sendtime) values('13000010003','test',getdate())    drop table msg_mobile
[解决办法]
将发送成功的消息内容+手机号+发送日期保存下来,发送时按消息内容+手机号+发送日期查一下,有记录的不发送
[解决办法]
是的,否则如何实现你的要求?

热点排行