我需要在单个数据库的单个事务中包含多个存储过程,如果任何一个存储过程失败,则回滚所有在范围内处理的存储过程的事务。
我使用的是SQL-SERVER 2008。
我需要在单个数据库的单个事务中包含多个存储过程,如果任何一个存储过程失败,则回滚所有在范围内处理的存储过程的事务。
我使用的是SQL-SERVER 2008。
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