如何设置某条sql语句执行的时候不执行触发器

2025-03-22 22:20:00
推荐回答(1个)
回答(1):

你这个是FOR触发器,在语句后面执行,inserted和ssss表中的数据已经是一样的了,你下面两句得到的结果都是修改后的值:

select @sname=name,@ssr=sr from inserted
select @ssr2=sr from ssss where name=@sname

改成:

1
2
3
4
5
6
7
8
9
10
11
12
13

create trigger cf_lz on ssss
for insert,update
as
declare @sname nvarchar(10),@ssr nvarchar(10),@ssr2 nvarchar(10)
select @sname=name,@ssr=sr from deleted
select @ssr2=sr from ssss where name=@sname
print len(@ssr)
print @ssr
if(len(@ssr2)>0 and len(@ssr)>0)
begin
print 1
rollback tran -- rollback tran
end