【发布时间】:2009-10-22 16:31:41
【问题描述】:
我需要在单个数据库的单个事务中包含多个存储过程, 如果任何存储过程失败,则回滚范围内处理的所有存储过程的事务。
我使用 SQL-SERVER 2008
【问题讨论】:
标签: sql-server sql-server-2008 stored-procedures transactions
我需要在单个数据库的单个事务中包含多个存储过程, 如果任何存储过程失败,则回滚范围内处理的所有存储过程的事务。
我使用 SQL-SERVER 2008
【问题讨论】:
标签: sql-server sql-server-2008 stored-procedures transactions
begin transaction
begin try
exec proc_1
exec proc_2
exec proc_3
commit transaction
end try
begin catch
rollback transaction
end catch
【讨论】:
您可以创建一个存储过程来启动一个事务,然后调用其他存储过程。如果任何内部存储过程失败,您可以回滚事务。如果您告诉我们您使用的是什么数据库平台(MS SQL Server、MySQL 等),人们或许能够提供更具体的解决方案。
【讨论】:
无法比这更好地描述解决方案。
【讨论】:
事务通常处于连接级别,因此如果您想通过代码 api 控制事务,您应该能够使用相同的“事务对象”。
.Net 示例http://msdn.microsoft.com/en-us/library/2k2hy99x.aspx 使用 ado.net
【讨论】: