我在作业中有几个存储过程,在其中一个中我开始一个事务来删除一些行,如果行大于10,那么我回滚。但是如果不存在我不想马上提交,因为2存储过程后来我做了类似的事情。但是如果在这个实例中count大于10,我希望它一直回滚到我查看事务时(前两个存储过程)
是否可以在存储过程中启动事务并在最后某处进行多次回滚和提交,或者是否必须将所有代码放入1个存储过程才能执行此操作?
答案 0 :(得分:1)
这听起来非常容易失败。
无论如何,您需要在代码中启动事务,然后使用相同的连接执行procs。一旦所有的proc都执行完毕,代码就会提交或回滚。
假设这是c#
,请参阅以下问题以获得答案:Call multiple SQL Server stored procedures in a transaction
答案 1 :(得分:0)
您可以编写多个存储过程,然后以嵌套方式执行它们。 您可以声明变量以获取结果并使用if语句提交或rais错误用于catch块或回滚事务