当前位置: 代码迷 >> Sql Server >> 触发器发邮件解决方案
  详细解决方案

触发器发邮件解决方案

热度:56   发布时间:2016-04-27 20:59:04.0
触发器发邮件
大家好,我在做触发器发邮件的时候,当连续插入两条记录的时候,就只能收到一封邮件:
CREATE   TRIGGER   INSERT_GTBH
ON   GTBH
FOR   INSERT
AS
DECLARE   @MESSAGEBOX   VARCHAR(250)
DECLARE   @GTBH_CODE   VARCHAR(17)
DECLARE   @GBH_SUM   NUMERIC(15,2)
SELECT   @GTBH_CODE=A.gtbh_code,@GTBH_FROM=A.c_code   FROM   inserted   A
set   @[email protected]_code+ '   '[email protected]_from
EXEC   master..XP_SENDMAIL   '[email protected] ',@messagebox
GO



------解决方案--------------------
不能直接从insert中取,这样只能取一条,写游标逐行取
CREATE TRIGGER INSERT_GTBH
ON GTBH
FOR INSERT
AS
DECLARE @MESSAGEBOX VARCHAR(250)
DECLARE @GTBH_CODE VARCHAR(17)
DECLARE @GBH_SUM NUMERIC(15,2)
declare cur_tmp cursor for
SELECT A.gtbh_code,A.c_code FROM inserted A
open cur_tmp
fetch next from cur_tmp into @GTBH_CODE,@GTBH_FROM
while @@fetch_status=0
begin
set @[email protected]_code+ ' '[email protected]_from
EXEC master..XP_SENDMAIL '[email protected] ',@messagebox
fetch next from cur_tmp into @GTBH_CODE,@GTBH_FROM
end
close cur_tmp
deallocate cur_tmp
  相关解决方案