Create trigger trigname on A FOR UPDATE AS begin if exists((select * from inserted where B=1) and (select * from deleted where B=1)) Rollback tran end go
就在UPDATE的时候下条件就好啦,干嘛要用触发器呢。
1. 程序中update时加where b=0 2. 用instead of update触发器 create trigger tr on 表 instead of update as update t set 字段1=I.字段1 ,字段2=I.字段2 from 表 t join deleted D on t.主键=D.主键 join inserted I on I.主键=D.主键 where I.b=0go
1. 程序中update时加where b=0 2. 用instead of update触发器 create trigger tr on 表 instead of update as update t set 字段1=I.字段1 ,字段2=I.字段2 ............. from 表 t join deleted D on t.主键=D.主键 join inserted I on I.主键=D.主键 where I.b=0go
在参考了 churchatp1、 WangZWang、 vivianfdlpw() 的发言和查阅了sqlserver帮助文件后 我用下面的触发器实现,经测试有效CREATE TRIGGER AA ON A FOR UPDATE AS IF (select B from deleted d)='1' begin ROLLBACK transaction end
FOR UPDATE
AS
begin
if exists((select * from inserted where B=1) and
(select * from deleted where B=1))
Rollback tran
end
go
2. 用instead of update触发器 create trigger tr
on 表
instead of update
as
update t
set 字段1=I.字段1
,字段2=I.字段2
from 表 t
join deleted D on t.主键=D.主键
join inserted I on I.主键=D.主键
where I.b=0go
2. 用instead of update触发器 create trigger tr
on 表
instead of update
as
update t
set 字段1=I.字段1
,字段2=I.字段2
............. from 表 t
join deleted D on t.主键=D.主键
join inserted I on I.主键=D.主键
where I.b=0go
我用下面的触发器实现,经测试有效CREATE TRIGGER AA ON A
FOR UPDATE
AS
IF (select B from deleted d)='1'
begin
ROLLBACK transaction
end