• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

SQL SERVER提交事务回滚机制

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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提交事务回滚机制的文章就介绍到这了,更多相关SQL SERVER事务回滚内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例发布时间:2022-02-08
下一篇:
数据库之SQL技巧整理案例发布时间:2022-02-08
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap