代码如下,请大家诊断一下
create TRIGGER TriggerName ON [dbo].[TableName]
FOR UPDATE
ASif UPDATE(TableCol1) and UPDATE(TableCol1)
begin
if 判断条件不成立
goto Error
判断成立
执行下面代码......
end
return
Error:
RAISERROR ('提示!', 16, 1)问题是手工抛出的异常,但Update TableCol1,TableCol2却成功了,怎样让抛出异常后不更新TableCol1,TableCol2呢?
create TRIGGER TriggerName ON [dbo].[TableName]
FOR UPDATE
ASif UPDATE(TableCol1) and UPDATE(TableCol1)
begin
if 判断条件不成立
goto Error
判断成立
执行下面代码......
end
return
Error:
RAISERROR ('提示!', 16, 1)问题是手工抛出的异常,但Update TableCol1,TableCol2却成功了,怎样让抛出异常后不更新TableCol1,TableCol2呢?
if UPDATE(TableCol1) and UPDATE(TableCol1)
帮你顶顶~!
rollback
RAISERROR ('提示!', 16, 1)
create trigger s_t
on s
for insert
as
if 11 > (select NNUM from inserted)
begin
print 'you can not insert'
rollback
end
drop trigger s_t
insert into s
values('2001','asdf','12','guojia',100)
alter table s add NNUM int NULL
insert into s
values('1005','adf','11','guojia')
select * from s
begin transaction
update s set NNUM = 150
select * from s where sno = '2001'
commit
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sghgcn/archive/2009/05/06/4156073.aspx