begin tran,commit tran和rollback tran的用法

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

    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中加入一个专门记录异常的表,以便产于异常发生的

本文转自 netcorner 博客园博客,原文链接: http://www.cnblogs.com/netcorner/archive/2009/10/17/2912057.html  ,如需转载请自行联系原作者

相关文章
|
算法 计算机视觉 Python
DSP:数字信号处理技术的魅力与应用
DSP:数字信号处理技术的魅力与应用
|
移动开发 API
Uniapp解决app和H5跨域问题
Uniapp解决app和H5跨域问题
2742 0
Uniapp解决app和H5跨域问题
|
1月前
|
人工智能 固态存储 Linux
树莓派这种“玩具级”设备,真能跑大模型吗?
本期教程带你用树莓派5部署Qwen3模型,打造完全离线、自带屏幕与键盘的“AI小终端”。基于C语言实现,不依赖Python或llama.cpp,支持多尺寸Qwen3模型,实现本地化私有推理。跟随步骤,轻松搭建属于你的端侧AI助手。
749 168
|
Linux 芯片 开发者
|
前端开发 Java Linux
cp: can‘t stat ‘/usr/share/zoneinfo/Asia/Shanghai‘: No such file or directory
cp: can‘t stat ‘/usr/share/zoneinfo/Asia/Shanghai‘: No such file or directory
|
6月前
|
存储 Java API
MinIO Java SDK 7.1.4 升级到 8.5.17 需要注意什么
现在我需要你帮我分析对比这个两个sdk在对外的接口设计上是否有不兼容的变更
540 5
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
615 1
Python实用记录(十三):python脚本打包exe文件并运行
|
9月前
|
存储 缓存 API
无需登录+离线调试,Apipost完胜Apifox?
在API调试工具领域,强制登录与离线支持的优劣一直备受关注。本文以Apipost和Apifox为例,通过三组实验对比两者在快速调试、断网环境及敏感接口调试中的表现。Apipost凭借游客模式和本地存储策略,实现无需登录即可调试,断网状态下功能正常,且保护用户隐私;而Apifox则因强制云端授权,在无网络或敏感数据场景下表现受限。最终,Apipost以更小的安装包、更快的启动速度和明确的隐私承诺胜出,为开发者提供更大自由度。
635 25
无需登录+离线调试,Apipost完胜Apifox?
|
Java 数据库连接 数据库
mybatis查询数据,返回的对象少了一个字段
mybatis查询数据,返回的对象少了一个字段
1115 9