SQL Server:在事务中批量插入

时间:2014-07-21 13:31:49

标签: sql sql-server

在交易中插入大量记录。

BEGIN TRANSACTION DATAINSERT

-- INSERT QUERIES HERE

COMMIT TRANSACTION DATAINSERT

但即使文件中间的脚本遇到外键约束,也不会回滚先前的插入。

  

INSERT语句与FOREIGN KEY约束冲突

我想要的只是脚本应该成功,当且仅当所有插入成功且没有任何约束违规时。

1 个答案:

答案 0 :(得分:2)

并非所有错误都意味着回滚。这取决于severity。有时您需要在出现错误时显式回滚。

设置SET XACT_ABORT ON以强制所有错误都是事务中止的错误,但要小心你的脚本不会继续期望事务并在错误之后自动提交每个语句。