我现在无法自行测试并获得解决方案,而且我还没有在MSDN或google上找到该信息。
我被问到是否需要将在给定表中插入,删除和更新记录的合并语句封装在事务中(如果在完成插入后发生故障,例如在更新期间发生故障),或者是否有任何操作失败整个合并也会失败。
如果我们包含交易,这可能不会造成损害,但是出于好奇,我们希望对合并内部了解更多。
SQL Server中的任何语句本身就是事务。
也就是说,这是原子的:一切都会成功或一切都会失败
一个显式事务将用于将多个单个原子语句分组为一个大原子事务。
这就是MERGE的优点:不需要显式事务和3个单独的语句。