Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。begin tran表示开始事务, commit tran表示提交事务,rollback tran表示回滚事物
 
具体用法如下:

-- =============================================
-- Author: cynimoon
-- Create date: 2009-10-09
-- Description: 示例存储过程
-- =============================================
-- EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门'
CREATE PROCEDURE [dbo].[TEST_PROC]
@A_Name NVARCHAR(20), -- A表姓名
@A_Remark NVARCHAR(4000), -- A表备注
@B_Name NVARCHAR(20), -- B表姓名
@B_Remark NVARCHAR(4000) -- B表备注
AS
BEGIN TRY
BEGIN TRAN
-- 在A表中插入数据
INSERT INTO [dbo].[A]
( [A_Name]
, [A_Remark] )
VALUES
( @A_Name
, @A_Remark )
-- 在B表中插入数据
INSERT INTO [dbo].[B]
( [A_ID]
, [B_Name]
, [B_Remark] )
VALUES
( @@IDENTITY -- 返回最后插入的标识值
, @B_Name
, @B_Remark )
COMMIT TRAN
END TRY
BEGIN CATCH
ROLLBACK TRAN
INSERT INTO [dbo].[ErrorLog]
( [EL_Procedure] -- 异常存储过程名称
, [EL_OperateTime] ) -- 报异常时间
VALUES
( 'TEST_PROC'
, CONVERT(DATETIME,GETDATE(),20) )
END CATCH

注:1. @@IDENTITY的作用是返回最后插入的标识值。 
2. 我在rollback tran中加入一个专门记录异常的表,以便产于异常发生的时间和确定报异常的存储过程的名称。 
原文链接: 
begin tran 可以理解成新建一个还原点。 
commit tran提交这个自begin tran开始的修改 
rollback tran 表示还原到上个还原点。

【转】【SQLServer】SQL事务用法begin tran,commit tran和rollback tran的用法的更多相关文章

  1. sql中的begin catch 。。。end catch 的用法

    begin catch ...end  catch 是用来处理异常的 begintry--SQLendtry begincatch--sql (处理出错动作)endcatch 我们将可能会出错的sql ...

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

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

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

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

  4. SqlServer中嵌套事务使用--事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配 --根本问题

    转自  :SqlServer中嵌套事务使用--事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配 --根本问题 问题: 1. System.Data.SqlClient.SqlExcepti ...

  5. SQL事务的使用

    在 SQL Server 中数据库事务处理是个重要的概念,也稍微有些不容易理解,很多 SQL 初学者编写的事务处理代码存往往存在漏洞,本文介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正 ...

  6. sql 事务使用

    BEGIN TRAN Tran_Money --开始事务 DECLARE @tran_error int; SET @tran_error = 0; BEGIN TRY UPDATE tb_Money ...

  7. SQL事务+异常

    BEGIN TRAN BEGIN TRY --这里写代码 --这里写代码 END TRY BEGIN CATCH ROLLBACK TRAN END CATCH COMMIT TRAN

  8. sqlserver存储过程事务回滚

    set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[AddUserOnChannel] ), ), @Channe ...

  9. qt sql事务操作

    事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位.在Qt中用transaction()开始一个事务操作,用commit()函数或 ...

随机推荐

  1. [liu yanling]测试流程

    测试流程 1.制定测试计划 2.编辑测试用例 3.执行测试用例 4.发现并提交BUG 5.开发组修正BUG 6.对已修正BUG进行返测 7.修正完成的BUG将状态置为已关闭,未正确修正的BUG重新激活

  2. [Codechef October Challenge 2014]刷漆

    问题描述 Czy做完了所有的回答出了所有的询问,结果是,他因为脑力消耗过大而变得更虚了:).帮助Czy恢复身材的艰巨任务落到了你的肩上. 正巧,你的花园里有一个由N块排成一条直线的木板组成的栅栏,木板 ...

  3. 关于在SharePoint2013中弹出模态化窗口的问题及关闭事件。

    js: /*弹出对话框方法开始*//** 弹窗方法(需要回传值时,自定义回调方法)* @url: 弹出窗口页面url* @width: 宽度* @height: 高度* @callback: 回调函数 ...

  4. Java笔记(十)……面向对象II封装(Encapsulation)

    封装概念 封装: 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处: 将变化隔离. 便于使用. 提高重用性. 提高安全性. 封装原则: 将不需要对外提供的内容都隐藏起来. 把属性都隐藏,提 ...

  5. cloud-utils cloud-utils-growpart cloud-init

  6. 几年的Git使用技巧总结

    用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景.嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流. 创建和使用git ssh key 首先设置gi ...

  7. 数值类对象:NSNumber,NSValue,NSNull

    基本,集合,复杂,对象 可用对象封装基本数值,然后将对象放入NSArray或NSDictionary 中. 用对象封装基本数值后,即可给其发送消息. 数值类型包括:NSNumber,NSValue,N ...

  8. java实现文件复制功能

    原理:把原文件读入到输入流里,然后利用输出流写入到新的文件. 代码如下: /** * 复制文件 * @param fromFile * @param toFile * <br/> * 20 ...

  9. Codeforces Round #382 (Div. 2)E. Ostap and Tree

    E. Ostap and Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  10. Spring Batch Framework– introduction chapter(下)

    Extract,Transform, and load(ETL) Briefly stated, ETL is a process in the database anddata-warehousin ...