在交易中插入大量记录。
BEGIN TRANSACTION DATAINSERT
-- INSERT QUERIES HERE
COMMIT TRANSACTION DATAINSERT
但即使文件中间的脚本遇到外键约束,也不会回滚先前的插入。
INSERT语句与FOREIGN KEY约束冲突
我想要的只是脚本应该成功,当且仅当所有插入成功且没有任何约束违规时。
答案 0 :(得分:2)
并非所有错误都意味着回滚。这取决于severity。有时您需要在出现错误时显式回滚。
设置SET XACT_ABORT ON
以强制所有错误都是事务中止的错误,但要小心你的脚本不会继续期望事务并在错误之后自动提交每个语句。