SQL SERVER事务回滚语句怎么编辑,执行结果是什么
发布时间:2023-05-11 14:10:00 所属栏目:MsSql教程 来源:
导读:很多朋友都对“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 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐