insert ...
   if @@error<> 0  goto Err
   delete...
   if @@error<> 0  goto Err
   update..
   if @@error<> 0  goto Err
   commit
   return
Err:
   rollback

解决方案 »

  1.   

    没必要写commit
       insert ...
       if @@error<> 0  goto Err
       delete...
       if @@error<> 0  goto Err
       update..
       if @@error<> 0  goto Err
       
       return
    Err:
       rollback
      

  2.   

    触发器里不能写commit语句,如果有的话后面的向数据库的插入语句就不会提交!
      

  3.   

    .
    .
    .
    .
    .
    if @@error<> 0  goto Err   Err:
       rollback
      

  4.   

    触发器里不能写commit语句
    ---------------------
    可以写,但不能孤立的写!如果在触发器里一定要写 commit tran
    那必须也要写 begin tran
    否则就会出现sdhdy(大江东去...) 说的现象!
      

  5.   

    --可以的.create trigger t_test on 表
    for insert
    as
    insert into 表....  --处理语句1
    if @@error<>0 goto lb_errinsert into 表....  --处理语句2
    if @@error<>0 goto lb_errlb_err:
    rollback tran
    go