1. USE master
  2.  
  3. Create Database TestDb
  4. on Primary
  5. (
  6. name='TestDb_data',
  7. filename='G:\TempData\Db\TestDb_data.mdf',
  8. size=5MB,
  9. filegrowth%
  10. )
  11. Log on
  12. (
  13. name='TestDb_log',
  14. filename='G:\TempData\Db\TestDb_log.ldf',
  15. size=1MB,
  16. filegrowth%
  17. )
  1. USE TestDb
  2.  
  3. ---创建表Table1
  4. IF OBJECT_ID('Table1','U') IS NOT NULL
  5. DROP TABLE Table1
  6. GO
  7. CREATE TABLE Table1
  8. (ID INT NOT NULL PRIMARY KEY,
  9. Age )); -- 满足条件才会插入;
  10. GO
  1. --测试事务
  2. BEGIN TRANSACTION
  3. INSERT INTO Table1(ID,Age)
  4. ,)
  5. INSERT INTO Table1(ID,Age)
  6. ,) --【注意】,小于上面设置的范围
  7. INSERT INTO Table1(ID,Age)
  8. ,)
  9. INSERT INTO Table1(ID,Age)
  10. ,)
  11. COMMIT TRANSACTION
  12. GO
  13.  
  14. delete Table1 --删除数据,方便演示数据;

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

SELECT * FROM Table1

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

--检查全局变量@@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:
  1. BEGIN TRAN;
  2. ,) ; BEGIN ROLLBACK TRAN;GOTO EndTran;END;
  3. ,) ; BEGIN ROLLBACK TRAN;GOTO EndTran;END;
  4. ,) ; BEGIN ROLLBACK TRAN;GOTO EndTran;END;
  5. ,) ; BEGIN ROLLBACK TRAN;GOTO EndTran;END;
  6.  
  7. EndTran:
  8. BEGIN
  9.  
  10. AS Success;END
  11. ELSE
  12. AS Success;END
  13. 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. php file_exists中文路径不存在问题

    php的file_exists函数使用中文路径,会显示文件不存在,即使文件已经存在了也会报这个错. 解决方法: <?php $file_name='D://360极速浏览器下载//a.txt'; ...

  2. Delphi 过程类型

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  3. Spark-源码-SparkContext的初始化

    Spark版本 1.3SparkContext初始化流程 1.0 在我们的主类 main() 方法中经常会这么写 val conf = new SparkConf().setAppName(" ...

  4. 005---基于UDP的套接字

    基于UDP的套接字 udp不同于tcp协议:不需要经过三次握手.四次挥手.直接发送数据就行. 服务端 import socket ip_port = ('127.0.0.1', 8001) buffe ...

  5. Intellij 出现“Usage of API documented as @since 1.4+”的解决办法

    https://blog.csdn.net/wust_lh/article/details/73277185

  6. python2.7入门---模块(Module)

        来,这次我们就看下Python 模块(Module).它是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句.模块让你能够有逻辑地组织你的 Pytho ...

  7. java反射操作类方法与属性

    package com.fanshe.test; public class User { private int age; private String email; private String u ...

  8. 30分钟 带你浅入seajs源码

    上个星期写了浅入requirejs的,  大家都知道 require是AMD规范(Asynchronous Module Definition) 来  今天我们一起看看 CMD规范(Common Mo ...

  9. lessJs

    lessJs下载地址 ======== 简介 lessJs主要提供页面切换,页面管理的一个框架:less-ui.css 和 less-ui.js 是独立于less.js的,他们提供的是一组ui,包括消 ...

  10. 小议Android多进程以致Application多次初始化

    最近遇到一个bug,当应用加了多进程后,比如总共进程数为N,会出现在`startService()`时`onStartCommand()`方法会被重复调用`(N-1)`次的奇怪现象. ***## 祸起 ...