① sql 如何禁用触发器
--禁用
alter table [tablename]
disable all trigger
--恢复
alter table [tablename]
enable all trigger
详细语法,请F1查询帮助
② 如何设置某条sql语句执行的时候不执行触发器
你这个是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