数据库语句收集
获取每个类别最新记录:
CREATE TRIGGER singletri ON dbo.tbl_SMSendTask INSTEAD OF INSERT asBEGINdeclare @tablename varchar(20)declare @sqlcom nvarchar(500), @param nvarchar(500)declare @Daddr varchar(20)declare @scon varchar(500)declare @stime datetimedeclare @num intselect @Daddr=DestAddr,@scon=SM_Content,@stime=SendTime from insertedset @tablename='tbl_SMResult_'+SUBSTRING(CONVERT(varchar(100), GETDATE(), 12),3,4)set @sqlcom='select @a=count(*) from '+@tablename+' where DestAddr=@Daddr and SM_Content=@scon and DATEDIFF(hh,SendTime,@stime)<=5'set @param = '@Daddr varchar(20),@scon varchar(500),@stime datetime,@a int output'exec sp_executesql @sqlcom,@param,@Daddr,@scon,@stime,@num output insert into tbl_SMSendTask(CreatorID,SmSendedNum,OperationType,OrgAddr,DestAddr,SM_Content,SendTime,NeedStateReport,ServiceID,FeeType,FeeCode,SMType,MessageID,DestAddrType,SubTime,TaskStatus,SendLevel,SendState,tryTimes,SendType,taskName) select CreatorID,SmSendedNum,OperationType,OrgAddr,DestAddr,SM_Content,SendTime,NeedStateReport,ServiceID,FeeType,FeeCode,SMType,MessageID,DestAddrType,SubTime,TaskStatus,SendLevel,SendState,tryTimes,SendType,taskName from inserted ins where @num<=0insert into sms_history (OrgAddr,DestAddr,SM_Content,SendTime,SubTime,ServiceID) select OrgAddr,DestAddr,SM_Content,SendTime,SubTime,ServiceID from Inserted where @num>0 END GO