可以哦!但是应该尽量减少嵌套的事务

解决方案 »

  1.   

    是呀,事务是可以嵌套的,不过好像只能有255层
      

  2.   

    SQL Server的嵌套事务是假的!!载自联机丛书:
    《---------
    SQL Server忽略提交内部事务。根据最外部事务结束时采取的操作,将提交或者回滚事务。如果提交外部事务,则内层嵌套的事务也会提交。如果回滚外部事务,则不论此前是否单独提交过内层事务,所有内层事务都将回滚。
    ----------》内层事务只能提交不能rollback,否则将会导致错误!
    而内层事务就算已经提交了,外层事务的提交或回滚也将不理会内层的提交,而是按照外层的提交或回滚为主!说的感觉像绕口令,只是想表达:SQL server的嵌套事务没什么用!!像你的例子:
    BEGIN TRANSACTION                          BEGIN
      ...                                        ...
      BEGIN TRANSACTION                          BEGIN
        ...                                        ...
      ROLLBACK                                   END
      ...                                        ...
    COMMIT                                     END外层会出现错误!不能运行的!