我们有一个客户端应用程序在 SQL Server 2005 上运行一些 SQL,如下所示:
BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;
由一个长字符串命令发送。
如果其中一个插入失败,或者命令的任何部分失败,SQL Server 是否会回滚事务?如果它不回滚,我是否必须发送第二个命令才能将其回滚?
我可以提供有关我正在使用的 api 和语言的详细信息,但我认为 SQL Server 应该对任何语言做出相同的响应。
最佳答案
您可以在事务之前设置set xact_abort on
,以确保 SQL 在出现错误时自动回滚。
关于SQL Server - 事务在错误时回滚?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749719/