0

我在一个作业中有几个存储过程,在其中一个中我开始一个事务以删除一些行,如果行大于 10,那么我回滚。但是,如果没有我不想立即提交,因为 2 存储过程稍后我会做类似的事情。但是,如果在这种情况下计数大于 10,我希望它一直回滚到我盯着事务时(两个存储过程之前)

是否可以在存储过程中启动事务并在某处最后进行多次回滚和提交,或者我是否必须将所有代码放入 1 个存储过程中才能做到这一点?

4

2 回答 2

1

这听起来非常容易失败。

无论如何,您需要在代码中启动事务,然后在使用相同的连接时执行 procs。一旦所有的过程都执行完毕,代码就会提交或回滚。

假设这是c#,请参阅以下问题以获取答案:Call multiple SQL Server stored procedures in a transaction

于 2013-09-26T13:54:04.733 回答
0

您可以编写多个存储过程,然后以嵌套方式执行它们。您可以声明变量以获取结果并使用 if 语句来提交或引发 catch 块或回滚事务的错误

于 2013-09-26T15:02:27.597 回答