return的意思是结束触发器,后面的语句不再执行。
rollback tran回滚,恢复原先状态。

解决方案 »

  1.   

    我觉的,tr_suppliers_del是建立在suppliers表上的触发器,功能是,当suppliers表中实行删除操作时,执行触发器。所以,执行触发器时,suppliers
    表中的删除操作已经完成了,为什么还要在
      

  2.   

    if  @@rowcount=0    判断suppliers表中被删除的数据行的数量?
    --对,@@rowcount是delete操作的数据条数。 @@代表全局变量
       return           返回什么?
    --这里是函数结束的标志,在这里是什么也没有返回。也可以return @yrvalue这样来返回一个结果。
    delete products     
    from deleted d,suppliers s    删除suppliers、deleted表中的products列?
    --deleted是虚表,sql server在这里将你delete操作删除的纪录存储到这个--表中,可以通过rollback来取消这次删除操作。就是下面的rollback tran
    where d.supplierid=s.supplierid   两个表中的数据要一致?
    if @@error != 0          如果删除没成功
    --@@error是系统定义全局变量,记录exception的。
    begin 
         rollback tran      回转到哪?
    --回滚到delete执行之前的状态。
         return               返回到哪?
    end
    return              返回到哪?
      

  3.   

    这几个return都是结束触发器,返回到触发器执行前的状态,后面的语句不再执行的意思吗?
      

  4.   

    这几个return都是结束触发器,返回触发器执行前的状态,后面的语句不再执行的意思吗
      

  5.   

    no,return 结束触发器,但不是"返回触发器执行前的状态"
    rollback transaction 清除事務,返回触发器执行前的状态,就好象沒有執行触发器一樣