各位用户为了找寻关于SQL事务用法begin tran,commit tran和rollback tran的用法的资料费劲了很多周折。这里教程网为您整理了关于SQL事务用法begin tran,commit tran和rollback tran的用法的相关资料,仅供查阅,以下为您介绍关于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 表示还原到上个还原点。