updated记录可以不止一条,应该是一个结果集,而你所说的第2点是正确的,但是触发器不能递归调用,也就是说如果在触发器是再执行update语句,该语句是不会再触发触发器的~~~~

解决方案 »

  1.   

    to : superrg(秀华)
    我同意:“updated记录可以不止一条,应该是一个结果集,而你所说的第2点是正确的” 
    但触发器中不能递归调用??在MSSQL的帮助中说支持递归调用,设置
    recursive triggers 为ON 就可以,不过不能超过32层。所以只要控制好条件,还是可以在触发器中再触发自身的。
    另外我想是不是这样:
       1。   DatabaseServer.update(var Deleted, inserted: table)   //产生 Deleted, inserted表,DatabaseServer.delete,DatabaseServer.insert 也同理。
       2。   Trigger(var deleted, inserted)                 //更新表的触发器触发。如果触发器内又触发了自身,侧 deleted,inserted 参数将改变。形成递归调用。
          
      

  2.   

    同意superrg(秀华)和 KingSunSha(弱水三千) 要注意的是,当你的三个UPDATE没有做成一个事务时,那你的存储过程万一没有完成,就可能只修改了部分数据.当你的三个UPDATE做成一个事务时,那这个事务包括了存储过程语句1 --》触发器(完全完成) --》存储过程语句2 --》触发器(完全完成) --》存储过程语句3......的所有操作.呵呵,危险!