SQLserver 触发器有重复数据传递给存储过程.

问题遇到的现象和发生背景

今天遇到一个很迷的问题.
建立了一个触发器,里面有一个临时表. 当表数据有更新的时候会触发. 循环临时表将数据传递给存储过程.
实际数据有五条, 但是最后查日志表的时候发现了6条, 即4条不重复的,1条重复了2次.
在存储过程中print ,确认是触发器传过来了6条.

问题相关代码,请勿粘贴截图

BEGIN
set nocount on;
--传递参数给邮件存储过程
declare @code nvarchar(50),@count int=1,@i int=0
Create table #temp(t_ID int,t_code nvarchar(MAX))

 --插入deleted表数据到临时表#temp。  deleted触发器临时表
  insert into #temp(code) select DISTINCT d.[Code] from  deleted d

-- SELECT * FROM #temp
select @count = COUNT(t_code) from #temp
--循环临时表
while (@count>=@i)
begin
--根据code 在t1表中查询信息
select @code = t1.[code],
from (select ROW_NUMBER() over(order by t_ID) rownu,t_code from #temp ) t2 , table1 t1
where t1.[code]=t2.t_code and t2.rownu=@i

    if (@code<>'')
     BEGIN
    --执行存储过程
    exec  dbo.[Customers_cursor]
    @Ccode=@code,
    END ELSE
        begin
        insert into TEST.DBO.Log_table(code,send) values (@code,'code错误')    
        END
set @i = @i + 1;
end
drop table #temp; --删除临时表

END

运行结果及报错内容

img

我的解答思路和尝试过的方法

尝试过not exists , 但是第一次全流程操作后插入到日志表的时候显示5条数据, 有效果; 但是第二次全流程操作插入只显示4条数据了. 重复的那条直接没了.
因为是日志表, 所以5条数据需要5条日志, 不能多也不能少.

确认过触发器的所有环节的取值, 5条数据, 插入到临时表还是5条数据.

我想要达到的结果

求解决方法.

顶顶