sqlserver事务的简介

: 事务要有非常明确的开始和结束点,SQL Server 中的每一条数据操作语句,例如SELECT、INSERT、UPDATE和DELETE都是隐式事务的一部分。即使只有一条语句,系统也会把这条语句当做一个事务,要么执行所有的语句,要么什么都不执行。 事务开始之后,事务所

含义:

事务要有非常明确的开始和结束点,SQL Server 中的每一条数据操作语句,例如SELECT、INSERT、UPDATE和DELETE都是隐式事务的一部分。即使只有一条语句,系统也会把这条语句当做一个事务,要么执行所有的语句,要么什么都不执行。

事务开始之后,事务所有的操作都会写到事务日志中,写到日志中的事务,一般有两种:一是针对数据的操作,例如插入、修改和删除,这些操作的对象是大量的数据;另一种是针对任务的操作,例如创建索引。当取消这些事务操作时,系统自动执行这些操作的反操作,,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期的检查事务日志。如果在事务日志中事务全部完成,那么检查点事务日志中的事务提交到数据库中,并且在事务日志中做一个检查点提交标识;如果在事务日志中,事务没有完成,那么检查点不会将事务日志中的事务提交到数据库中,并且在事务日志中做一个检查点未提交的标识。事务的恢复及检查点保证了系统的完整和可恢复。

事务的属性:

事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有4个属性,称为原子性(Atomic)、 一致性(Consistent)、隔离性(Isolated)、持久性(Durable),简称ACID属性,只有这样才能构成一个事务。

原子性:

整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性:

在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

隔离性:

两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。

持久性:

在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

由于一项操作通常会包含许多子操作,而这些子操作可能会因为硬件的损坏或其他因素产生问题,要正确实现ACID并不容易。ACID建议数据库将所有需要更新 以及修改的资料一次操作完毕,但实际上并不可行。

事务管理的常用语句:

BEGIN TRANSACTION——建立一个事务

COMMITTRANSACTION——提交事务

ROLLBACK TRANSACTION——事务失败时执行回滚操作

SAVE TRANSACTION——保存事务

BEGIN TRANSACTION 和COMMIT TRANSACTION同时使用,用来表示事务的开始和结束。

事务的隔离级别:

事务具有隔离性,不同事务中所使用的时间必须要和其他事务进行隔离,在同一时间可以有很多个事务正在处理数据,但是每个数据在同一时刻只能有一个事务进行操作。如果将数据锁定,使用数据的事务就必须要排队等待,这样可以防止多个事务互相影响。但是如果有几个事务因为锁定了自己的数据,同时又在等待其他事务释放数据,则造成死锁。

事务实现代码

---开启事务BEGIN TRAN --错误捕捉机制 BEGIN TRY --语句正确 insert into lives (Eat,Play,Numb) values ('猪肉','足球',1) --Numb为int类型,出错
insert into lives (Eat,Play,Numb) values ('猪肉','足球','abc') ;END TRY
BEGIN CATCH select Error_number() as ErrorNumber, --错误代码
Error_severity() as ErrorSeverity, --错误严重级别,级别小于10 try catch 捕获不到
Error_state() as ErrorState , --错误状态码
Error_Procedure() as ErrorProcedure , --出现错误的存储过程或触发器的名称。
Error_line() as ErrorLine, --发生错误的行号
Error_message() as ErrorMessage --错误的具体信息 IF(@@TRANCOUNT >0) --全局变量@@trancount,事务开启此值+1,他用来判断是有开启事务
SET @ERR_MSG=error_message()  ROLLBACK  TRAN  ---由于出错,这里回滚到开始,插入失效
END  CATCH
IF (@@TRANCOUNT >0)
COMMIT  TRAN  --如果成功Lives表中,将会有3条数据。

KSO-Sqlserver事务的实现相关推荐

  1. KSO - sqlserver事务实现

    ---开启事务BEGIN TRAN --错误捕捉机制,看好啦,这里也有的.并且可以嵌套.BEGIN TRY --语句正确 insert into lives (Eat,Play,Numb) value ...

  2. 解释一下SQLSERVER事务日志记录

    解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log ...

  3. SQLServer 事务的隔离级别

    SQLServer事务的隔离级别 数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况. 更新丢失(Lost update) 两个事务都同时更新一行数据,但是第二个事务 ...

  4. SQLServer 事务复制中使用脚本添加某个对象的发布

    SQLServer 事务复制中使用脚本添加某个对象的发布 原文:SQLServer 事务复制中使用脚本添加某个对象的发布 -- use [发布库] --添加表:创建项目并将其添加到发布中 exec s ...

  5. sqlserver 事务日志已满和'PRIMARY'

    sqlserver 事务日志已满和'PRIMARY' 1.出现这个问题是日志文件达到了单个文件的极限了要解决这个问题有两个方法 1.删除日志:解决方法是这样子的:DUMP TRANSACTION 库名 ...

  6. (转)解释一下SQLSERVER事务日志记录

    本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html 解释一下SQLSERVER事务日志记录 大家知道在完整恢 ...

  7. sqlserver 事务日志过大 收缩方法解决方案

    sqlserver 事务日志过大 收缩方法解决方案 参考文章: (1)sqlserver 事务日志过大 收缩方法解决方案 (2)https://www.cnblogs.com/QingKing/p/4 ...

  8. SqlServer 事务回滚

    SqlServer 事务回滚 SQL事务 一.事务概念 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行.因此事务是一个不可分割的工作逻辑单元.在数据库 ...

  9. 使用Sqlserver事务发布实现数据同步

    事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这里以sqlserver2008的事务发布功能为例,对发布 ...

  10. Sqlserver 事务与锁

    最近没怎么睡好  也可以能和最近换工作有关 断断续续的 理解里 事务与锁 为什么需要锁 因为数据库事务迸发的时候会影响数据的完整与准确性 所以 数据库事务会有一个锁的概念 比如 A老师修改小明的数据  ...

最新文章

  1. 用shell脚本实现定时备份数据库
  2. 边框回归的损失函数_一文搞懂常用的七种损失函数
  3. python中序列和列表区别细菌真菌病毒_python是哪种动物_动物的分类
  4. linux 多窗口 同一用户,Linux 用命令把同一个用户加入多个组
  5. Dojo EnhancedGrid Pagination
  6. phoenix客户端操作hbase已经存在的表
  7. Kubernetes端到端解决方案Part3:如何正确部署Kubernetes
  8. opencv计算机视觉学习笔记一
  9. Docker学习: 配置Docker阿里云的镜像加速器(图文)
  10. python有哪两种表现形式小练笔_写一篇不一样的爱400字:爱有两种表现形式小练笔400字...
  11. 如何给计算机添加密码,怎么给电脑设置密码,手把手教你电脑怎么设置密码
  12. day25:组合总和,电话号码的字母组合
  13. 警惕新骗术:虚假二维码生成器盗取 4.6 万美元!
  14. 比MySQL快839倍!揭开分析型数据库JCHDB的神秘面纱
  15. MySQL基础教程——创建数据库并插入数据
  16. 最大化参数 火车头_火车头采集器菜鸟使用手册
  17. Cover Letter常用范式和模版
  18. AI 《A PROPOSAL FOR THE DARTMOUTH SUMMER RESEARCH PROJECT ON ARTIFICIAL INTELLIGENCE》读后总结
  19. 第二讲 系统研究手段
  20. NP管理器和MT哪个强_NP管理器2.7.6多功能文件管理器 媲美MT/功能更强大

热门文章

  1. 应急响应入侵排查之第三篇常见的 Webshell 在线查杀工具
  2. Codeforces 85D Sum of Medians(线段树)
  3. 移动APP测试用例设计实践经验
  4. JAVA中随机数的选取方法
  5. UE4 用C++构建自定义材质 完成视频抠像
  6. 计算机的USB接口可以扩展吗,电脑的USB接口不够用怎么办?别急,我来支招!
  7. DSP28335 CAN模块例程
  8. windows7系统损坏修复_为什么有的win7开机没有修复计算机的选项?分享解决方法!...
  9. Android Studio调用百度地图(二):实现地图显示后台定位和步行导航
  10. mysql按中文拼音排序_按拼音排序,mysql 按中文拼音顺序排序