首页 / 更多教程 / SQL入门经典(十) 之事务
SQL入门经典(十) 之事务
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL入门经典(十) 之事务,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2431字,纯文字阅读大概需要4分钟。
内容图文
![SQL入门经典(十) 之事务](/upload/InfoBanner/zyjiaocheng/467/160c7fdda9d2497cb3f704d40e593309.jpg)
USE panda --继续用这个数据库 GO SELECT * FROM dbo.test002 --结果集合 --4 122 22 xxx@qq.com 112 --6 122 22 x22xx@qq.com 31222 --12 231 3334 qxxfs@qq.com 18612345678 BEGIN TRAN UPDATE dbo.test002 SET name=‘test‘ --本来修改ID 为12的数据。忘记写WHERE 过滤了 SELECT * FROM dbo.test002 --结果集合 --4 test 22 xxx@qq.com 112 --6 test 22 x22xx@qq.com 31222 --12 test 3334 qxxfs@qq.com 18612345678 --在查询一次 表示我误伤了所有数据。 那就进行回滚: ROLLBACK TRAN SELECT * FROM dbo.test002 --结果集合 --4 122 22 xxx@qq.com 112 --6 122 22 x22xx@qq.com 31222 --12 231 3334 qxxfs@qq.com 18612345678 数据正常了
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
如果多条语句呢?如下图
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
BEGIN TRAN UPDATE dbo.test002 SET name=‘test‘ begin TRAN UPDATE dbo.test003 SET name=‘test‘ ROLLBACK TRAN --这条语句执行后,前面2条事务语句全部回滚。 COMMIT TRAN --数据会更新完毕。
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
数据脏读:我执行BEGIN TRAN UPDATE dbo.test002 SET name=‘test‘ ,有些人胆子大来获取数据,我在ROLLBACK STRN些,那他就倒霉了,这就脏读。。。
非重复读取:非重复度很容易跟脏读混淆。只知道这个术语就可以了。
幻读:只是在偶然的机会会出现。很少会出现。它在运行更新语句的时候,有人执行添加语句。
丢失更新:说的事例,你经理在看某个员工的工资表时候。员工A可以加工资了。你把员工A的工资从5000上调5500了。人事部B也在看A的信息。只是修改A的人事信息。在同时更新时候覆盖了事务1.
接着SQL入门经典(九)的视图:
说些@@EERROR这个系统错误号。
先看SQL语句在一句句解释
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
declare @count int ; set @count=0; BEGIN TRAN UPDATE dbo.test003 set name=‘test‘ where ID=4 select @count=@count+@@ERROR; INSERT dbo.test003 VALUES(15,GETDATE(),‘TEST_5‘)--这条语句会失败@@ERROR这个值会>0 select @count=@count+@@ERROR; if(@count>0) ROLLBACK TRAN ELSE COMMIT TRAN --(0 行受影响) 说明@@ERROR是个错误号。如果发生错误就是>0的数字
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
TRY CATCH 看下面SQL语句
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
BEGIN TRY --TRY 开始 BEGIN TRAN UPDATE dbo.test003 set name=‘test‘ where ID=4 INSERT dbo.test003 VALUES(15,GETDATE(),‘TEST_5‘) COMMIT TRAN END TRY --TRY结束 BEGIN CATCH --如果TRY 发生错误就执行这里面语句 ROLLBACK TRAN END CATCH --这句代码执行结果是(0 行受影响)说明COMMIT TRAN 没有执行。执行了ROLLBACK TRAN -- INSERT dbo.test003 VALUES(15,GETDATE(),‘TEST_5‘) -- 改为 --INSERT dbo.test003 VALUES(2,GETDATE(),‘TEST_5‘) --(2行受影响)TRY里面没有错误,就执行COMMIT TRAN不会执行CATCH里的代码
![SQL入门经典(十) 之事务 - 文章图片](/upload/getfiles/0001/2021/4/24/20210424034428320.jpg)
SQL入门经典(十) 之事务
标签:
本文系统来源:http://www.cnblogs.com/haiyabtx/p/5628255.html
内容总结
以上是互联网集市为您收集整理的SQL入门经典(十) 之事务全部内容,希望文章能够帮你解决SQL入门经典(十) 之事务所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。