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

【T_SQL】 基础 事务的更多相关文章

  1. 关于TransactionScope出错:“与基础事务管理器的通信失败”的解决方法总结

    遇到此问题先需确认几个问题: 1)MS DTC是否设置正确? 2)是否启用了防火墙?是否对DTC做了例外? 3)是否做了hosts映射?是否跨网域通信? 开发分布式事务,碰到一个错误“与基础事务管理器 ...

  2. entityframework分布式事务中遇到的 “与基础事务管理器的通信失败”的解决方法

    首先是ef的多数据库操作实现事务的方法 public int AddDifferenceDB(userinfo1 user1, userinfo user) { ; using (var test2D ...

  3. Java基础——事务

    一.事务 简单点说,事务就是一件事情.所有与事务相关的内容都是围绕这一件事情展开的. 二.事务的特性:ACID A:Atomicity(原子性),事务必须是一个不可分割的整体. C:Consisten ...

  4. mysql基础 事务的认识和使用

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 ...

  5. Oracle基础 事务

    一.事务 事务就是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败. 二.事务的特性: 1.原子性:事务是SQL中的最小执行单位,不能再进行分割.要么全部执行,要么全部 ...

  6. oracle-SQL语言基础-事务控制命令命令

    事务控制命令命令 COMMITROLLBACKSAVEPOINTSET TRANSACTION 当第一条可执行的SQL语句开始执行,数据库事务就开始.随着下面任一事件发生,数据库事务结束:执行COMM ...

  7. MySQL 基础 事务

    什么是mysql的事务 MySQL 事务主要用于处理操作量大,复杂度高的数据.简单的说,事务就是一连串的DML的sql语句组合在一起,所以语句执行成功才算成功,如果有语句执行失败,执行就不成功 .比如 ...

  8. 性能测试基础---事务&检查点&思考时间&集合点

    性能测试脚本的增强:·参数化·关联·事务·检查点·思考时间·集合点 ·事务:事务的引入是为了度量相关的业务请求的响应时间和吞吐量指标.在LR中,事务是通过两个事务函数来实现的. lr_start_tr ...

  9. 部署K2 Blackpearl流程时出错(与基础事务管理器的通信失败或Communication with the underlying transaction manager has failed.

    转:http://www.cnblogs.com/dannyli/archive/2011/12/01/2270222.html 亲,在部署K2流程是,是否遇到这个错误(以下是中.英文错误信息) 中文 ...

随机推荐

  1. redis与memcache区别总结

    2015年9月2日 14:04:19 总会被问到两者的区别, 在这里总结下: redis 有内置的多种数据结构, list(可用于实现小型队列), hash, set, zset...; memcac ...

  2. 关于新中新二代身份证读卡器DKQ-A16D的一些问题

    今天拿到了新中新DKQ-A16D,随机光盘里有以下文件: 我遇到的问题是,如果直接打开\二代征SDK开发包\DLL\测试程序\C#_2008\WindowsFormsApplication1\目录下的 ...

  3. IEEE802.15.4 部分无线收发芯片比较

    见下表:   TI(CC2530&CC2520) ST(STM32W108) Atmel(AT86RF231) 功耗(发送功率0DB) 30mA 31mA 14mA 是否提供手册 提供 不提供 ...

  4. Android 启动白屏或者黑屏闪现解决

    1.设置Style //1.设置背景图Theme <style name="Theme.AppStartLoad" parent="android:Theme&qu ...

  5. 【linux】学习2

    鸟哥那本书的第6章 文件权限: ^                ^     ^      ^        ^              ^                 ^ 1         ...

  6. php dirname($path) 中文路径不对问题

    将$path中的\改为/ $dir=__FILE__;$dir = str_replace("\\","/", $dir);$dir=dirname($dir) ...

  7. AFNetworking request failed unacceptable content type text/html

    今天体验AFNetwork 3.1.0 进行数据解析,但是解析数据控制台一直都输出这样的 error 结果: 于是,照着以前AFN2.+版本的进行设置: 结果发现在新版本的 AFN 上不能设置了.既然 ...

  8. August 28th 2016 Week 36th Sunday

    What doesn't kill you makes you stronger. 那些没有彻底击败你的东西只会让你更强大. Where there is life, there is hope, a ...

  9. !gluLookAt与glOrtho 参数解析

    void gluLookAt( GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLd ...

  10. CUDA中并行规约(Parallel Reduction)的优化

    转自: http://hackecho.com/2013/04/cuda-parallel-reduction/ Parallel Reduction是NVIDIA-CUDA自带的例子,也几乎是所有C ...