中关村在线

软件

SQL Server事务详解

SQL Server事务是数据库操作的逻辑工作单元。

1、 根据图示说明,创建一个新的存款表格。

2、 包含两位用户,各自拥有ID、姓名及相应余额信息。

3、 查询表_存款中的所有数据信息

4、 假设一下现在的情况。

5、 李冬冬向黄少明借一千元。

6、 如何用SQL语句实现这一操作?

7、 将表_存款中id为1的记录余额减去1000。

8、 将表_存款中id为2的记录余额增加1000元。

9、 查询表_存款中的所有数据

10、 这些SQL语句我们之前都学过。

11、 从id1账户扣除1000元。

12、 将id2的余额增加1000元。

13、 如果李冬冬再次向黄少明借款五千元,又该如何处理?

14、 结果出现负数,实在不合常理。

15、 余额字段应设置为不低于零。

16、 进入设计表界面,选择添加CHECK约束选项。

17、 该设置确保余额列在增改时数值不得低于零。

18、 保存并关闭表结构修改后,该约束即刻生效。

19、 恢复原表数据后重新执行转账,观察结果。

20、 再尝试转账五百元,看看情况如何。

21、 错误消息547,严重级别16,状态0,位于第一行。

22、 数据库geek的dbo.表_存款表中,余额列的值在执行UPDATE语句时违反了余额>=0的CHECK约束,导致操作失败。

23、 已终止语句。

24、 1 行已更新

25、 提示出现后,减少5000操作失败,但增加5000的操作成功完成。

26、 这种情况确实存在风险,现实中银行若出现类似问题将带来严重后果。

27、 此时需引入事务概念,以有效解决此类问题。

28、 事务指的是一组操作。

29、 需要同时完成多项任务,且全部必须成功;只要其中任意一项失败,此前所有成果都将作废。

30、 例如,首先需从id1卡中扣除5000元。

31、 请将id2卡余额充值至5000元。

32、 两件事须在事务中同时成功方为有效。

33、 若某操作失败,则视为无效,系统将数据全部回滚至操作前状态。

34、 一手交钱,一手交货,简单直接明了。

35、 必须全部成功或全部失败,绝不允许部分成功部分失败。

36、 恢复之前的数据即可。

37、 在SQL Server中,默认情况下每个SQL语句都会被视为一个独立事务。

38、 事务确保数据操作的完整与安全。

39、 起初,人们更青睐SQL Server和Oracle,对MySQL则兴趣寥寥。

40、 早期MySQL版本缺乏事务支持功能。

41、 开始事务处理,启动数据库操作的事务流程。

42、 提交事务操作,完成数据变更的持久化处理。

43、 回滚事务操作,撤销未提交的数据更改。

44、 事务核心在于三个关键词。

45、 在处理多项任务前先开启事务,如同游戏中的存盘点,确保操作可回溯与一致性。

46、 若所有操作均顺利完成,则提交事务,数据库中的数据才会正式生效。

47、 一旦出错便回滚事务,恢复至游戏的保存进度。

48、 开启事务,对ID1执行加10000操作。

49、 再查一次

50、 发现id1账户余额增加一万,但该笔交易尚未完成。

51、 该数据仅暂存于单一位置,须完成回滚或提交操作后方可视为最终结束。

52、 回滚事务后重新查询,数据恢复至先前状态。

53、 如此一来,此事便有始有终了。

54、 若决定提交事务,系统将永久保存此次操作的所有更改。

55、 该事务已正式写入数据库,成为持久化数据,不再仅是临时存储。

56、 他人便能真正查询到相关信息。

57、 在SQL Server中,我们用SQL语句完整实现了该过程。

58、 先声明一个变量。

59、 每次执行,数值自动累加。

60、 若结果为2则提交,否则回滚事务。

61、 接着查看结果,保持不变,再尝试修改为2000。

62、 声明一个整型变量用于记录受影响的行数。

63、 将表_存款中id为1的记录余额减去2000。

64、 将上一条语句影响的行数赋值给变量@影响行。

65、 将表_存款中id为2的记录余额增加2000元。

66、 将上一条语句影响的行数累加到变量@影响行中。

67、 如果影响行数等于2

68、 查询表_存款中的所有数据。

69、 转账已完成

70、 事务涉及一个方面

71、 共享读锁

72、 独占锁(增删改)

73、 事务相关内容已介绍完毕,更多细节可参考MSDN了解事务隔离级别。

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具