【T_SQL】 基础 事务
1、使用 T-SQL 语句来管理事务
开始事务:BEGIN TRANSACTION
提交事务:COMMIT TRANSACTION
回滚(撤销)事务:ROLLBACK TRANSACTION
2、判断某条语句执行是否出错
使用全局变量@@ERROR。@@ERROR 只能判断当前一条 T-SQL 语句执行是否有错,为了判断事务中所有 T-SQL 语句是否有错,我们需要对错误进行累计;如: SET @errorSum=@errorSum+@@error3、事务必须具备 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
最新文章
- dell md3200i mdss (企业管理) 安装的那点事儿(2)
- VBA宏 合并EXCEL
- Linux上vi(vim)编辑器使用教程
- ALV调用的几个标准函数
- lambda 表达式 自定义查询
- 百度地图API的自动定位路线查询
- CentOS LNMP环境搭建 各版本
- 玩了几天的ARToolKit
- 12. Application-specific scanners (特定应用程序扫描器)
- MVC 实用架构设计(三)——EF-Code First(5):二级缓存
- 知乎改版api接口之scrapy自动登陆
- 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
- Myeclipse安装完配置
- asp.net Core EF core ( Entity Framework 7 ) 数据库更新维护
- codeforces 883H - Palindromic Cut - [字符串处理]
- redhat linux 6.2 安装配置GUI
- openLayers 4 canvas图例绘制,canvas循环添加图片,解决图片闪烁问题
- [postfix]转发邮件设置
- 04 Python入门学习-流程控制(if else elif while for)
- Java面向对象-方法的重载
热门文章
- (转)C++0x语言新特性一览
- html表单样式, table隔行高亮, 长字符串自动换行
- ACM/ICPC 之 BFS范例(ZOJ2913-ZOJ1136(POJ1465))
- Java for LeetCode 213 House Robber II
- pthread_cond_wait的原子性
- Android笔记:实现点击事件
- ios waxpatch lua语法
- 建立controller
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(三) 之 实现单聊,群聊,发送图片,文件。
- vector<; vector<;int>; >;类似于二维数组