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

 
 
 
 
 
 
 
 
 
 
 
 
 

BEGIN TRAN;的更多相关文章

  1. ADOConnectoin事务和存储过程中的Begin tran commit

    一直以来我都是在存储过程中使用事务 create proc usp_proc begin begin  tran ..... commit end 那么我现在问一个问题,如果在BCB的代码中写这样的代 ...

  2. BEGIN TRAN...COMMIT TRAN 意思与用法

    BEGIN TRAN标记事务开始 COMMIT TRAN 提交事务 一般把DML语句(select ,delete,update,insert语句)放在BEGIN TRAN...COMMIT TRAN ...

  3. SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务. begin tran表示开始事务, commit tran表示提交 ...

  4. 【转】【SQLServer】SQL事务用法begin tran,commit tran和rollback tran的用法

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务.begin tran表示开始事务, commit tran表示提交事 ...

  5. Sql Server 中事务(begin tran/commit tran/rollback tran)的用法

    ALTER PROCEDURE [dbo].[Proc_Test_commit1]     @result int output, --成功 1; 失败 0     @message nvarchar ...

  6. sql语句中BEGIN TRAN...COMMIT TRAN

    BEGIN TRAN标记事务開始  COMMIT TRAN 提交事务  一般把DML语句(select ,delete,update,insert语句)放在BEGIN TRAN...COMMIT TR ...

  7. 存储开头结尾使用begin tran,rollback tran作用?

    BEGIN TRAN你就把它看成一个还原点,一般用在INSERT.UPDATE.DELETE等能改变数据操作前设置,如果操作后发现执行的结果和预期的不一样,就ROLLBACK,反之就COMMIT提交

  8. SQL 事务 begin tran、commit tran、rollback tran 的用法

    首先理解一下这三个事务的大概意思: begin Transaction 可以理解成新建一个还原点. commit Transaction 提交这个自begin tran开始的修改 rollback T ...

  9. sqlserver中事务总结:begin tran,rollback tran,commit tran

     第1个相关用法:摘自:https://shiyousan.com/post/f13d29b7-0d87-4168-bd8b-8b28b0991b5a 以下是出现错误的SQL部分语句: 此错误的原因是 ...

随机推荐

  1. Linux中的目录功能(Red Hat 7)

    目录的基本功能: /bin:存放普通用户使用的命令 /sbin:存放管理员可以执行的命令 /home:存放普通的家目录 如张三家目录为/home/zhangsan /root:管理员的家目录 /etc ...

  2. kafka重置offset

    kafka重置offset   1.删除zookeeper上节点信息 打开client :./zkCli.sh -server 127.0.0.1:12181 删除consumer:rmr /cons ...

  3. PHP HashTable总结

    本篇文章主要是对 PHP HashTable 总结,下面的参考链接是很好的学习资料. 总结 HashTable 又叫做散列表,是一种用于以常数平均时间执行插入.删除和查找的技术.不能有效的支持元素之间 ...

  4. 3 python3 编码解码问题 upd接受数据

    1.python3下的中文乱码:send_data.encode("utf-8") from socket import * udp_socket = socket(AF_INET ...

  5. 封装一个List集合和datatable相互转换的工具类(可对指定列进行重命名并且指定输出列)

    /// <summary> /// List转换为DataTable对象 /// </summary> public class ListTranTableModel { // ...

  6. 高德API+Python解决租房问题(.NET版)

    源码地址:https://github.com/liguobao/58HouseSearch 在线地址:58公寓高德搜房(全国版):http://codelover.link:8080/ 周末闲着无事 ...

  7. APIO2018 游记

    day \(-\infty\) \(\sim\) day0 5 月 5 号左右的时候去了趟中北大学,山西省大学生程序设计竞赛.不是太满意,现场 rk3.拿到了充电宝(冲着这个去的,虽然抵不过车费),抽 ...

  8. (原)一段看似美丽的for循环,背后又隐藏着什么

    之前很长一段时间,潜心修炼汇编,专门装了一个dos7,慢慢玩到win32汇编,再到linux的AT&A汇编,尝试写mbr的时候期间好几次把centos弄的开不了机,又莫名其妙的修好了,如今最大 ...

  9. [P2387魔法森林

    题面 题意: 给出一个图,边权有两维,a与b. 求1到n的一条路径使得路径经过的边的最大的a与b的和最小,输出最小之和. \(Solution:\) 如果做过这题,那么就显得很简单了很好想了. 又是想 ...

  10. 剑指offer-合并两个排序链表16

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. class Solution: # 返回合并后列表 def Merge(self, pHead1 ...