1、使用 T-SQL 语句来管理事务 

     开始事务:BEGIN TRANSACTION 

     提交事务:COMMIT TRANSACTION 

     回滚(撤销)事务:ROLLBACK TRANSACTION 

2、判断某条语句执行是否出错 

     使用全局变量@@ERROR。@@ERROR 只能判断当前一条 T-SQL 语句执行是否有错,为了判断事务中所有 T-SQL 语句是否有错,我们需要对错误进行累计;如: SET @errorSum=@errorSum+@@error

3、事务必须具备 ACID 四个属性

原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行 

     一致性(Consistency):当事务完成时,数据必须处于一致状态 

     隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务 

     永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性

4、事务的分类

显示事务:用 BEGIN TRANSACTION 明确指定事务的开始,这是常用的事务类型 

    隐性事务:通过设置 SET IMPLICIT_TRANSACTIONS ON 语句,将隐性事务模式设置

 

    为打开,下一个语句自动启动一个新事务。当该事务完成时,再下一个 T-SQL 语句又将启动一个新事务自动提交事务:这是 SQL Server 的默认模式,它将每条单独的 T-SQL 语句视为一个事务,如果成功执行,则自动提交;如果错误,则自动回滚

5、事务例句

BEGIN TRANSACTION -- 开始事务
DECLARE @errorSum INT --定义变量接收错误语句数
SET @errorSum = 0 --初始化变量,无错误
SQL 语句 1
SET @errorSum=@errorSum+@@error
SQL 语句 2
SET @errorSum=@errorSum+@@error
……
IF @errorSum <> 0 --产生错误,回滚事务
BEGIN
ROLLBACK TRANSACTION
END
ELSE --如果无错误,提交事务
BEGIN
COMMIT TRANSACTION
END
GO

最新文章

  1. dell md3200i mdss (企业管理) 安装的那点事儿(2)
  2. VBA宏 合并EXCEL
  3. Linux上vi(vim)编辑器使用教程
  4. ALV调用的几个标准函数
  5. lambda 表达式 自定义查询
  6. 百度地图API的自动定位路线查询
  7. CentOS LNMP环境搭建 各版本
  8. 玩了几天的ARToolKit
  9. 12. Application-specific scanners (特定应用程序扫描器)
  10. MVC 实用架构设计(三)——EF-Code First(5):二级缓存
  11. 知乎改版api接口之scrapy自动登陆
  12. 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
  13. Myeclipse安装完配置
  14. asp.net Core EF core ( Entity Framework 7 ) 数据库更新维护
  15. codeforces 883H - Palindromic Cut - [字符串处理]
  16. redhat linux 6.2 安装配置GUI
  17. openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题
  18. [postfix]转发邮件设置
  19. 04 Python入门学习-流程控制(if else elif while for)
  20. Java面向对象-方法的重载

热门文章

  1. (转)C++0x语言新特性一览
  2. html表单样式, table隔行高亮, 长字符串自动换行
  3. ACM/ICPC 之 BFS范例(ZOJ2913-ZOJ1136(POJ1465))
  4. Java for LeetCode 213 House Robber II
  5. pthread_cond_wait的原子性
  6. Android笔记:实现点击事件
  7. ios waxpatch lua语法
  8. 建立controller
  9. ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(三) 之 实现单聊,群聊,发送图片,文件。
  10. vector&lt; vector&lt;int&gt; &gt;类似于二维数组