站长网 MsSql教程 SQL SERVER事务回滚语句怎么写

SQL SERVER事务回滚语句怎么写

SQL SERVER事务回滚语句怎么写

很多朋友都对“SQL SERVER事务回滚语句怎么写,执行结果是什么”的内容比较感兴趣,对此小编整理了相关的知识分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获,那么感兴趣的朋友就继续往下看吧!
1、回滚语句1:
SET XACT_ABORT OFF

BEGIN TRAN

INSERT INTO score   VALUES (101,90)
INSERT INTO score VALUES (102,78)
INSERT INTO score VALUES (107,76) /**//* Foreign Key Error */
INSERT INTO score VALUES (103,81)
INSERT INTO score VALUES (104,65)
COMMIT TRAN

go

  结果1:只回滚错误行,语句还继续执行。

–select * from score

101 90

102 78

103 81

104 65

2、回滚语句2:
SET XACT_ABORT on

BEGIN TRAN

INSERT INTO score   VALUES (101,90)
INSERT INTO score VALUES (102,78)
INSERT INTO score VALUES (107,76) /**//* Foreign Key Error */
INSERT INTO score VALUES (103,81)
INSERT INTO score VALUES (104,65)
COMMIT TRAN

go

结果2:事务终止并全部回滚,结果为空。

–select * from score

3、回滚语句3:
事务在错误行终止,错误行回滚,错误行之前的不回滚

SET XACT_ABORT on

BEGIN

INSERT INTO score VALUES (101,90)

INSERT INTO score VALUES (102,78)
INSERT INTO score VALUES (107,76) /**//* Foreign Key Error */
INSERT INTO score VALUES (103,81)
INSERT INTO score VALUES (104,65)
END

go

  结果3:出现这种是因为系统把每个insert语句都看成是单独的事务,所以错误行以前的是不回滚的。

–select * from score

101 90

102 78

关于“SQL SERVER事务回滚语句怎么写,执行结果是什么”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,小编每天都会为大家更新不同的知识。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mssql/2024/0514/45054.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部