事务就是被绑定在一起作为一个逻辑工作单元的SQL语句组,如果任何一个语句操作失败那么整个操作就被失败,进而回滚到操作前状态,或者是上个节点。 原子性(Atomicity):事务的原子性是指一个事务中包含的一条语句或者多条语句构成了一个完整的逻辑单元,这个逻辑单元具有不可再分的原子性。这个逻辑单元要么一起提交执行全部成功,要么一起提交执行全部失败。 一致性(Consistency):可以理解为数据的完整性,事务的提交要确保在数据库上的操作没有破坏数据的完整性,比如说不要违背一些约束的数据插入或者修改行为。一旦破坏了数据的完整性,SQL Server 会回滚这个事务来确保数据库中的数据是一致的。 隔离性(Isolation):与数据库中的事务隔离级别以及锁相关,多个用户可以对同一数据并发访问而又不破坏数据的正确性和完整性。但是,并行事务的修改必须与其它并行事务的修改相互独立,隔离。 但是在不同的隔离级别下,事务的读取操作可能得到的结果是不同的。 持久性(Durability):数据持久化,事务一旦对数据的操作完成并提交后,数据修改就已经完成,即使服务重启这些数据也不会改变。相反,如果在事务的执行过程中,系统服务崩溃或者重启,那么事务所有的操作就会被回滚,即回到事务操作之前的状态。 (1)显示定义:以BEGIN TRAN开始,提交的话则COMMIT提交事务,否则以ROLLBACK回滚事务。 (2)隐式定义:SQL Server中默认把每个单独的语句作为一个事务。 换句话说,SQL Server默认在执行完每个语句之后就自动提交事务。当然,我们可以通过IMPLICIT_TRANSACTIONS会话选项来改变SQL Server处理默认事务的方式,该选项默认情况下是OFF。如果将其设置为ON,那么就不必用BEGIN TRAN语句来表明事务开始,但仍然需要以COMMIT或ROLLBACK来标明事务完成。事务概念
事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等。事务的ACID特性
如何定义事务
--定义事务 BEGIN TRAN; INSERT INTO dbo.T1(keycol, col1, col2) VALUES(4,101,'C'); INSERT INTO dbo.T1(keycol, col1, col2) VALUES(4,201,'X'); COMMIT TRAN;
事务案例
1.先创建一个Users表
2.语句
--小勇转账200给小敏 go --定义一个变量,记录错误数 declare @error_nums int set @error_nums=0 --开始事务 begin transaction tran_change begin try update Users set Remain=Remain-200 where id=1 set @error_nums=@error_nums+@@ERROR update Users set Remain=Remain+200 where id=2 set @error_nums=@error_nums+@@ERROR end try begin catch set @error_nums=@error_nums+1 print '错误异常:'+convert(varchar,error_number())+',错误消息'+error_message() end catch if(@error_nums>0) --表示前面有错 rollback transaction tran_change --回滚事务 else commit transaction tran_change --执行事务
3.查询一下看执行结果
select * from Users
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算