如何在多个SQL过程中使用事务?
我想通过一个sql过程启动一个事务,运行另外两个过程,然后使用命令“commit”运行第一个过程。 你认为这可能吗?我试过了,但收到了一个错误。如何在多个SQL过程中使用事务?,sql,sqltransaction,Sql,Sqltransaction,我想通过一个sql过程启动一个事务,运行另外两个过程,然后使用命令“commit”运行第一个过程。 你认为这可能吗?我试过了,但收到了一个错误。 EXECUTE后的事务计数表示BEGIN和COMMIT语句的数量不匹配。上一个计数为0,当前计数为1。之所以出现这种情况,是因为SQL Server并不真正支持嵌套事务 如果在嵌套的存储过程(非事务)中提交或回滚,则会生成错误266,因为开始和输入时@tracount不匹配 您应该在同一存储过程中将BEGIN TRAN和COMMITs配对 如果没有嵌套
EXECUTE后的事务计数表示BEGIN和COMMIT语句的数量不匹配。上一个计数为0,当前计数为1。之所以出现这种情况,是因为SQL Server并不真正支持嵌套事务 如果在嵌套的存储过程(非事务)中提交或回滚,则会生成错误266,因为开始和输入时@tracount不匹配 您应该在同一存储过程中将BEGIN TRAN和COMMITs配对
如果没有嵌套事务的概念,则需要在同一存储过程中执行回滚/提交。您可以使用SET XACT_ABORT来抑制由不匹配的@TRANCOUNT引起的错误266。不确定sql server中的嵌套事务 但是你可以试试这个
Begin Try
Begin Transaction1
Call Proc1
Call Proc2
Call Proc3
Commit
End Transaction
Catch
Rollback
如果您回滚,则可能的配对副本对您没有帮助。更多信息请参见