代码如下,请大家诊断一下
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呢?

解决方案 »

  1.   


    if UPDATE(TableCol1) and UPDATE(TableCol1) 
    帮你顶顶~!
      

  2.   

    Error: 
        rollback
        RAISERROR ('提示!', 16, 1) 
      

  3.   


    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