我在事务中包含了以下3个插入。如果任何插入因任何原因失败,我希望整个事务回滚。如果所有3个都成功了,我希望它能够提交。
BEGIN TRANSACTION
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN
答案 0 :(得分:3)
用户TRY...CATCH
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO myTable (myColumns ...) VALUES (myValues ...)
INSERT INTO myTable (myColumns ...) VALUES (myValues ...)
INSERT INTO myTable (myColumns ...) VALUES (myValues ...)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END
答案 1 :(得分:1)
你可以使用XACT_ABORT来做同样的技巧
set XACT_ABORT ON
insert into test
select 1
insert into test
select 1
insert into test
select 1/0
所有上述声明都将回滚