SQL Server - 事务在错误时回滚?

标签 sql sql-server sql-server-2005 transactions

我们有一个客户端应用程序在 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/

相关文章:

mysql - 检索每组中的最后一条记录 - MySQL

sql - 触发错误时回滚事务

php - 想要按类型转换排序但按值(value)排序

sql - Foreach 循环文件名

sql-server - T sql 将字符串值转换为货币格式不起作用

sql-server-2005 - Log4net没有插入数据库?

sql - Windows Azure SQL 数据库中用户定义的 CLR 数据类型

sql-server - SQL Server 中的 XML 结构

sql - 处理这个 sql 逻辑的更好方法是什么?

sql - 展平包含引用 SQL Server 2005 中其他行的行的表