SQL Server数据库高级进阶之事务实战演练

本文深入探讨了SQL Server数据库事务的本质、分类、小陷阱、特性及隔离级别。讲解了事务的四大特性:原子性、一致性、隔离性和持久性,并讨论了事务在并发环境中的隔离级别选择。此外,还分享了事务的实战运用场景和遵循的原则,帮助读者更好地理解和应用SQL Server事务。
摘要由CSDN通过智能技术生成

一、SQL Server事务的本质

•  什么是SQL Server数据库事务?
事务:
是作为单个工作单元而执行的--系列操作,如查询和修改数据,甚至可能是修改数据定义。
事务:保持逻辑数据一致性与可恢复性,必不可少的利器。

•  SQL Server数据库事务举例
在一个事务中,你写了2条sql语句,一条是修改订单表状态,一条是修改库存表库存-1 。 如果在修改订单表状态的时候出错,事务能够回滚,数据将恢复到没修改之前的数据状态,下面的修改库存也就不执行,这样确保你关系逻辑的一致,安全。

• 阿笨对SQL Server事务一句话总结
即这一组命令要么都执行,要么都不执行,通俗的理解就是共同进退。

二、SQL Server事务分类

SQL Server定义事务边界的方式分为显式事务隐式事务两种。

•  显式事务:明确指出事务的起止边界。如果不显式定义事务的边界,SQL Server 会默认把每个单独的语句作为-一个事务;换句话说,SQLServer默认在执行完每个语句之后就自动提交事务。

显示事务需要定义以BEGIN TRAN语句作为开始。如果想提交事务,则应该以COMMIT TRAN语句显式结束事务;如果不想提交事务(撤消事务中的修改),则应该以ROLLBACK TRAN语句显式结束事务。

•  隐式事务:SQL查询分析器中,当前会话默认就是为隐式事务。每执行一条DML操作,就直接提交到数据库保存。

三、SQL Server事务的小陷阱

下面的例子将两个INSERT语句封装在由BEGIN TRAN和COMMIT TRAN定义的一个显示事务边界中:

BEGIN TRAN;

INSERT INTO dbo. T1(keyco], col1, co12) VALUES(4, 101,'C);

INSERT INTO dbo. T1(keyco], col1, co12) VALUES(4, 101,'C);

COMMIT TRAN;

T-SQL使用下列语句来管理完整的事务(事务的基本三要素):

•  开始事务:BEGIN TRANSACTION

•  提交事务:COMMIT TRANSACTION

•  回滚(撤销)事务:ROLLBACK TRANSACTION

•  存储点语句:SAVE TRANSACTION(可选)

所谓事务存储点就是在事务过程当中插入若干个标记,当事务执行中出现错误时,可以不撤销整个事务,只是撤销部分事务,将事务退回到某个事物存储点。一旦事务提交或回滚,则事务结束。(备注:将事务回滚在初始状态成本有点大,那么关于事务使用存储点根据实际业务情况来判定是否使用。)

•   阿笨个人总结:
默认的隐式事务,在SQL Server查询分析器中每一个单独的语句就是一个事务,如果多行语句块需要包裹在一个事务中的话,则需要手动的开启显示事务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值