1 提示你exec 不能够回滚
2 你的存储过程a中的游标b没有关闭并且删除。
加上CLOSE b
DEALLOCATE b

解决方案 »

  1.   

    我说的再简单一点CREATE PROCEDURE t_3 AS
    begin TRAN
    insert into a values (1)
    rollback TRAN
    GO执行下面的
    begin tran
    exec t_3
    commit tran服务器: 消息 266,级别 16,状态 2,过程 t_3,行 8
    Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 1, current count = 0.
    服务器: 消息 3902,级别 16,状态 1,行 3
    The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
      

  2.   

    存储过程的rollback TRAN
      改成
    commit就没有问题了
    为什么?