SQL事务用法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 表示还原到上个还原点。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"SQL Server中的BEGIN TRAN是一个事务控制语句,它用于开始一个事务事务是一组SQL语句的逻辑单元,被作为一个整体进行提交或回滚。BEGIN TRAN命令指示SQL Server开始一个事务,并在后续的SQL语句中标识这个事务。 当我们在数据库中执行一系列操作时(例如插入、更新和删除数据),我们可能需要确保这些操作要么都执行成功,要么都不执行。这就是事务的用途之一。事务在以下情况下非常有用: - 当所执行的操作是相关联的,一个操作的成功与否可能会影响到其他操作。 - 当需要确保一组操作要么全部成功,要么全部失败,以维护数据的一致性。 BEGIN TRAN语句用于显式地开始一个事务。在BEGIN TRAN之后的SQL语句将被视为一个事务的一部分。在BEGIN TRANCOMMITROLLBACK之间的SQL语句将作为一个原子操作执行。如果在事务开始之后的任何地方发生了错误,我们可以使用ROLLBACK命令回滚事务,撤销之前的所有操作。如果我们希望提交事务,即使发生错误,我们可以使用COMMIT命令。 事务的使用可以保证数据的完整性和一致性。它提供了一种机制来管理数据库操作的执行顺序和结果,使得数据库的操作更加可靠和可靠。 总结一下,BEGIN TRANSQL Server中是一个开始事务的命令,它用于将一组相关的SQL语句包装在一个事务中。这样可以确保一组操作的一致性和完整性,并提供了回滚或提交事务的机制,以满足数据库操作的要求。"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值