CREATE TRIGGER [dbo].[SendCOPMail]
ON [dbo].[COPTG]
after update
AS
SET NOCOUNT ON;
BEGIN
DECLARE @TG001 nvarchar(20)
DECLARE @NEW_TG002 nvarchar(20)
DECLARE @CONTENT nvarchar(max)
DECLARE @KHBH nvarchar(20)
DECLARE @KHMC nvarchar(40)
DECLARE @TG023 nvarchar(40)
DECLARE @TG004 nvarchar(40)
DECLARE @tableHTML NVARCHAR(MAX)
SELECT @TG001=TG001,@TG002=TG002,@TG023=TG023,@TG004=TG004 FROM inserted
BEGIN
if UPDATE(TG023) AND @TG023='Y'
BEGIN
SELECT @KHBH=MA001,@KHMC=MA002 FROM COPMA WHERE MA001=@TG004
DECLARE test_Cursor CURSOR SCROLL FOR
SELECT TH004,TH005,TH006,TH001,TH002,TH003,convert(varchar(20),convert(decimal(16,6),TH008)),TH037
FROM COPTH
WHERE TH001=@TG001 AND TH002=@TG002
OPEN test_Cursor
DECLARE @TH001 nvarchar(20)
DECLARE @TH002 nvarchar(20)
DECLARE @TH003 nvarchar(20)
DECLARE @TH008 nvarchar(20)
DECLARE @TH004 nvarchar(20)
DECLARE @TH005 nvarchar(50)
DECLARE @TH006 nvarchar(30)
DECLARE @TH037 nvarchar(30)
FETCH NEXT FROM test_Cursor INTO @TH004,@TH005,@TH006,@TH001,@TH002,@TH003,@TH008,@TH037
SET @CONTENT= '<th>品号</th><th>品名</th><th>规格</th><th>销货单别</th><th>销货单号</th><th>序号</th><th>数量</th><th>本币税前金额'
BEGIN
SET @CONTENT=@CONTENT+'</th></tr>'+'<tr><th>'+@TH004+'</th><th>'+@TH005+'</th><th>'+@TH006+'</th><th>'+@TH001+'</th><th>'+@TH002+'</th><th>'+@TH003+'</th><th>'+@TH008+'</th><th>'+@TH037
FETCH NEXT FROM test_Cursor INTO @TH004,@TH005,@TH006,@TH001,@TH002,@TH003,@TH008,@TH037
END
SET @CONTENT=@CONTENT+'</th>'
CLOSE test_Cursor
DEALLOCATE test_Cursor
SET @tableHTML ='<H2>'+N'有销货单被审核了</H2>'
+'<table border="1">'
+'<tr>'+@CONTENT
+'</table>'
DECLARE @SENDTO NVARCHAR(MAX)
SET @SENDTO='123@TEST.COM'
-------------------------------------
-----此部分代码一加就会造成破核--------
Exec msdb.dbo.sp_send_dbmail
@profile_name='erp mail',
@recipients='123@TEST.COM',
@blind_copy_recipients=@SENDTO,
@subject='销货单审核测试',
@body=@tableHTML,
@body_format='HTML'
---------------------------------------
--------以下代码用于在屏蔽上部分代码时测试-------------
--UPDATE COPTG SET UDF12='MODI' FROM inserted WHERE COPTG.TG001=inserted.TG001 AND COPTG.TG002=inserted.TG002
------------------------------------------------------------------------------------
END
END
END
发送邮件的那部分代码一加前台审核就会破核,经测试
1.后台直接更改审核码为‘Y’是可以发送邮件的,且内容没问题。
2.注释掉该部分后,取消下面的注释,前台审核正常且UDF12会变成'MODI'。
3.试过曲线救国方案,利用插入INVLA触发,也是该段代码造成破核。
昨天查了一天资料也没有查到能够用来解释的资料,如果有大佬看到这文章,希望能指导下


被折叠的 条评论
为什么被折叠?



