我需要在单个数据库中的单个事务中包含多个存储过程, 如果任何存储过程失败,则回滚在范围内执行的所有存储过程的事务。
我使用SQL-SERVER 2008
答案 0 :(得分:4)
begin transaction
begin try
exec proc_1
exec proc_2
exec proc_3
commit transaction
end try
begin catch
rollback transaction
end catch
答案 1 :(得分:2)
您可以创建一个启动事务的存储过程,然后调用其他存储过程。如果任何内部存储过程失败,您可以回滚事务。如果您告诉我们您正在使用的数据库平台(MS SQL Server,MySQL等),人们可能能够提供更具体的解决方案。
答案 2 :(得分:1)
事务通常在连接级别,因此如果您想通过代码API控制事务,您应该能够使用相同的“事务对象”。
.Net示例http://msdn.microsoft.com/en-us/library/2k2hy99x.aspx使用ado.net
答案 3 :(得分:1)
不能比这更好地描述解决方案。