USE master

Create Database TestDb
on Primary
(
 name='TestDb_data',
 filename='G:\TempData\Db\TestDb_data.mdf',
 size=5MB,
 filegrowth%
)
Log on
(
 name='TestDb_log',
 filename='G:\TempData\Db\TestDb_log.ldf',
 size=1MB,
 filegrowth%
)
USE TestDb

---创建表Table1
IF OBJECT_ID('Table1','U') IS NOT NULL
DROP TABLE Table1
GO
CREATE TABLE Table1
(ID INT NOT NULL PRIMARY KEY,
Age  ));  -- 满足条件才会插入;
GO
--测试事务
BEGIN TRANSACTION
INSERT INTO Table1(ID,Age)
,)
INSERT INTO Table1(ID,Age)
,)  --【注意】,小于上面设置的范围
INSERT INTO Table1(ID,Age)
,)
INSERT INTO Table1(ID,Age)
,)
COMMIT TRANSACTION
GO

delete Table1 --删除数据,方便演示数据;

---第二条记录没有执行成功,其他的都执行成功

SELECT * FROM Table1

--所以并不是事务中的任意一条语句报错整个事务都会回滚,其它的可执行成功的语句依然会执行成功并提交 

--检查全局变量@@ROWCOUNT的值,若等于0,则执行回滚操作,实现事务中的任意一条语句报错时,整个事务都回滚;

@@ROWCOUNT (Transact-SQL)

Returns the number of rows affected by the last statement. If the number of rows is more than 2 billion, use ROWCOUNT_BIG.

See Also:
BEGIN TRAN;
,) ;     BEGIN ROLLBACK TRAN;GOTO EndTran;END;
,) ;      BEGIN ROLLBACK TRAN;GOTO EndTran;END;
,) ;     BEGIN ROLLBACK TRAN;GOTO EndTran;END;
,) ;     BEGIN ROLLBACK TRAN;GOTO EndTran;END;

EndTran:
BEGIN

     AS Success;END
ELSE
     AS Success;END
END

 
突破只能在同一sql实现事务,在多个方法中传递参数DbTransaction,实现事务:
MSSQL事务在C#程序端的使用 - catcherx - 博客园
http://www.cnblogs.com/catcherx/p/6051231.html

 
 
 
 
 
 
 
 
 
 
 
 
 

最新文章

  1. [Android]Message,MessageQueue,Looper,Handler详解+实例
  2. Java数组(初学者必看)
  3. BZOJ1576 (最短路+并查集)
  4. ADF_ADF Faces系列2_使用JSF开发基于Ajax的用户界面:ADF Faces富客户端组件简介(Part2)
  5. easy ui 下拉级联效果 ,下拉框绑定数据select控件
  6. AS3.0声明静态属性和静态方法
  7. Andoid 学习笔记 AppCompatEditText
  8. 【手机安全卫士01】项目Splash页面的开发与设计
  9. Oracle 中的Pivoting Insert用法
  10. 禁用物料不允许BOM
  11. centos安装docker容器
  12. 201521123019 《Java程序设计》第7周学习总结
  13. json中关于jo.[]中字符串一致的问题
  14. zeppelin0.7.3源码编译
  15. 使用Epplus生成Excel 图表
  16. docker+gitlab+gitlab-runner部署
  17. Openlayer3之C++接口在javaScript的封装使用
  18. classmethod作用
  19. java-03-动手动脑
  20. Java线程及线程池状态

热门文章

  1. Angular2中使用Jsonp
  2. 自定义控件,继承自 ListView
  3. Python全栈day 02
  4. zabbix使用iostat命令参数监控磁盘性能
  5. 幸运三角形 南阳acm491(dfs)
  6. Kubernetes-tutorials(五)
  7. 关于VSCode如何缩进两个空格
  8. LeetCode算法1—— 两数之和
  9. SAN---第二网的概念
  10. 【转载】[Elasticsearch]ES入门