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

具体用法如下:

复制代码 代码如下:

-- =============================================
-- 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 表示还原到上个还原点。

时间: 2024-10-26 05:49:11

SQL事务用法begin tran,commit tran和rollback tran的用法_MsSql的相关文章

sql事务应用积累_实用技巧

复制代码 代码如下: /// <summary> /// 批量执行SQL语句 /// </summary> /// <param name="Sqlstr">SQL语句数组</param> /// <param name="param">SQL参数对象数组</param> /// <returns></returns> public static Int32 Execut

SQl事务用法

SQl事务用法 简单地说,事务是一种机制,用以维护数据库的完整性. 其实现形式就是将普通的SQL语句嵌入到Begin Tran...Commit Tran 中(或完整形式 Begin Transaction...Commit Transaction),当然,必要时还可以使用RollBack Tran 回滚事务,即撤销操作. 利用事务机制,对数据库的操作要么全部执行,要么全部不执行,保证数据库的一致性.需要使用事务的SQL语句通常是更新和删除操作等. 有一点要注意,事务不支持嵌套,即不允许出现类似

sql事务(Transaction)用法介绍及回滚实例

当对多个表进行更新的时候,某条执行失败.为了保持数据的完整性,需要使用事务回滚. 显示设置事务  代码如下 复制代码 begin try begin transaction insert into shiwu (asd) values ('aasdasda'); commit transaction end try begin catch select ERROR_NUMBER() as errornumber rollback transaction end catch 隐式设置事务  代码如

[译] SQL 事务隔离实用指南

本文讲的是[译] SQL 事务隔离实用指南, 原文地址:Practical Guide to SQL Transaction Isolation 原文作者:Joe Nelson 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:sigoden 校对者:mnikn, tmpbook 你可能已经在你的数据库文档中看到过隔离级别这一个概念,虽然感到有点不安,但是并没有太放在心上.一些日常的例子中使用到的事务本质上是隔离.大多数人使用数据库的的默认隔离级别,并期

linq to sql事务的一个问题

问题描述 例如:我有两张表主表是[收款付款单],外表是[结算明细表][收款付款单](1)id(2)往来单位(3)业务日期(4)单据编号(5)说明[结算明细表](1)id(2)主表id(3)结算账户id(4)结算金额我如何用linqtosql的事务来做.这要先让[收款付款单]生成数据,给外表id.db.SubmitChanges();后才能生成id.那后面的[结算明细表]又要db.SubmitChanges();一次.这就变成不是在同一个事务中了.百度了很多没有找到相关的 解决方案 解决方案二:等

sql事务,在sql2000里判断执行是否成功用@@ERROR 判断

原文:sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 贴个sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 这个东西多少还是有点问题,sql2005了可以用try..catch了,不管那块错都能捕捉,然后在回滚,很方便,贴出来晾晾    BEGIN TRANSACTION; BEGIN TRY  --try 执行sql       SELECT 1/0; END TRY BEGIN CATCH  --cache抓错     SELECT        

SQL—— 事务

原文:SQL-- 事务  SQL 事务:   1.  定义:  事务是作为单个逻辑单元执行的一系列操作. 多个操作作为一个整体向系统提交,要么执行.要么都不执行,事务是一个不可分割的工作逻辑单元.这特别适用于多用户同时操作的数据通信系统.例如:订票.银行.保险公司以及证券交易系统等.   2. 事务必须具备的特性:     1) 原子性:  Atomicity  :事务是一个完整的操作, 个元素是不可再分的.事务中所以元素必须作为一个整体提交或回滚.如果十五中任何元素失败,则整个事务将失败.  

sql 事务日志传输

原文:sql 事务日志传输 概述        可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库).不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步.目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器.日志传送可与使用完整或大容量日志恢复模式的数据库一起使用:使用日志传送,您可以自动将"主服务器"实例上"主数据库"内的事务日志备份发

EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 1,当前计数 = 0。

问题描述 alterprocedure[dbo].[fin_providers]@provider_temp_idvarchar(20),--申请流水号(临时编号)(供应商申领材料款表)@sq_total_moneydecimal(10,5),--申请总金额(供应商申领材料款表)@R_f_idvarchar(20),--实际上每条记录的编号@R_f_moneydecimal(10,5),--实际上每条记录申领金额@sq_moneydecimal(24,12),--每条记录剩余可申请金额@erro