【发布时间】:2013-08-01 05:25:25
【问题描述】:
我正在尝试编写一个存储过程,我在不同的表上执行多个插入/更新/删除。
所以我的 SP 看起来像这样。这是正确的做法吗?
Begin
Merge 1
End
Begin
Merge 2
End
Begin
Merge 3
End
或者我应该像这样跟随
Begin
Merge 1
Merge 2
Merge 3
End
救命!!
【问题讨论】:
-
您的 BEGIN/END 段不会真正创建多个批次,因此这两个选项之间确实没有区别。您是说 BEGIN TRANSACTION / COMMIT TRANSACTION 吗?
-
感谢您的建议。我知道如果我将 BEGIN TRAN/COMMIT TRAN 作为一个批次使用,这将创建单独的批次。问这个问题的原因是想看看sql server是怎么处理的。
-
不,它仍然不是一个单独的批次,它是一个单独的事务。 BEGIN/END 只是代码块,与批处理无关。
标签: sql-server stored-procedures merge