SQL SERVER存储过程中使用事务与try catch
类别:数据库 浏览量:1218
时间:2016-5-3 SQL SERVER存储过程中使用事务与try catch
SQL SERVER存储过程中使用事务与try catch一、格式类似于
CREATE PROCEDURE YourProcedure
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY---------------------开始捕捉异常
BEIN TRAN------------------开始事务
UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 AS B ON A.id = B.id
UPDATE A SET A.names = B.names FROM 表1 AS A INNER JOIN 表2 AS B ON A.TEST = B.TEST
COMMIT TRAN -------提交事务
END TRY-----------结束捕捉异常
BEGIN CATCH------------有异常被捕获
IF @@TRANCOUNT > 0---------------判断有没有事务
BEGIN
ROLLBACK TRAN----------回滚事务
END
EXEC YourLogErrorProcedure-----------记录存储过程执行时的错误信息,自定义
END CATCH--------结束异常处理
END
二、捕获错误的常用函数
1、ERROR_NUMBER() 返回错误号。
2、ERROR_SEVERITY() 返回严重级别。
3、ERROR_STATE() 返回错误状态号。
4、ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。
5、ERROR_LINE() 返回导致错误的行号。
6、ERROR_MESSAGE() 返回错误消息的完整文本。该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。
三、实例
ALTER PROC usp_AccountTransaction
@AccountNum INT,
@Amount DECIMAL
AS
BEGIN
BEGIN TRY --Start the Try Block..
BEGIN TRANSACTION -- Start the transaction..
UPDATE MyChecking SET Amount = Amount - @Amount
WHERE AccountNum = @AccountNum
UPDATE MySavings SET Amount = Amount + @Amount
WHERE AccountNum = @AccountNum
COMMIT TRAN -- Transaction Success!
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRAN --RollBack in case of Error
END
EXEC YourLogErrorProcedure-----------记录存储过程执行时的错误信息,自定义
END CATCH
END
GO
标签:存储过程
您可能感兴趣
- sqlserver 存储过程(SQL Server解析XML数据的方法详解)
- mysql存储过程limit参数(MySQL存储过程in、out和inout参数示例和总结)
- mssql 存储过程查询语句(MSSQL分页存储过程完整示例支持多表分页存储)
- sqlserver查看表和存储过程的架构(SQL Server 远程更新目标表数据的存储过程)
- SQL SERVER获取指定数据库中所有存储过程的参数
- 使用VS调试存储过程
- MySql存储过程
- SQL Server中SQL语句或者存储过程的最大长度
- 存储过程中如何使用事务
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- mysql创建存储过程的代码(MySQL修改存储过程的详细步骤)
- mysql中常用的三种存储引擎的区别(MySQL 存储过程的优缺点分析)
- 存储过程中使用事务Transaction
- mysql存储过程声明(MySQL存储过程的深入讲解in、out、inout)
- mysql存储过程和函数(MySQL存储过程的查询命令介绍)
- mysql存储过程定义表(MySQL存储过程的创建、调用与管理详解)
- 玩网游居然让人更友善 很难以让人置信(玩网游居然让人更友善)
- 学好汉语拼音,从娃娃绕口令抓起,平时还是要多练 收藏好(从娃娃绕口令抓起)
- 仙女们的私藏鲜法大PK 鲜香切块牛肉(仙女们的私藏鲜法大PK)
- 天热没胃口 这道菜开胃又下饭,2个小技巧新手一学就会(这道菜开胃又下饭)
- 指天椒紫苏爆炒牛肉(指天椒紫苏爆炒牛肉)
- 谷雨前,吃牛羊肉别忘了吃河鲜,除湿还清热,加紫苏一炒特解馋(吃牛羊肉别忘了吃河鲜)
热门推荐
- ASP.NET根据IP获取省市地址
- 怎么运行xampp中的mysql(本地安装了mysql导致xampp的mysql服务启动失败)
- 使用vue-cli构建electron项目(MAC+PyCharm+Flask+Vue.js搭建系统)
- 如何排查mysql存储过程的问题(Mysql修改存储过程相关权限问题)
- 使用npoi将数据导出到一个EXCEL的多SHEET
- docker镜像配置的挂载路径(解决docker挂载的目录无法读写问题)
- webapp隐藏地址栏
- WinForm窗体间如何传值
- 常用的几种jsp开发环境搭建(怎么一键安装Jsp网站程序?Jsp环境一键配置软件JspStudy推荐)
- centosftp服务器的配置(CentOS6.9中搭建FTP服务器的方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9