比如作了一些校验,其中就涉及到需要直接跳出触发器。
RollBack Tran ?  这样SQL本身会抛一个错误出来
Return ?

解决方案 »

  1.   

    create table T(T_date datetime,T2_date datetime )
    drop trigger nothan
    create trigger nothan
    on t for insert
    as
    begin
    if exists(select 1 from inserted where T_date>T2_date)
    begin
    raiserror 50005 N'开始时间不能大于结束时间'
    rollback
    end
    end
    insert into t select '2007-1-2','2007-1-1'
      

  2.   

    消息 50005,级别 16,状态 1,过程 nothan,第 7 行
    开始时间不能大于结束时间
    消息 3609,级别 16,状态 1,第 1 行
    事务在触发器中结束。批处理已中止。
    这个我知道,界面会报错 “事务在触发器中结束。批处理已中止”有个问题:
    1、触发器会自己开一个事务?跟我开的事务有什么区别?
    2、界面需要处理这个消息!
      

  3.   

    raiserror 50005 N'开始时间不能大于结束时间'
    这删除也还会报错吗?