博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server Try Catch错误处理
阅读量:5149 次
发布时间:2019-06-13

本文共 815 字,大约阅读时间需要 2 分钟。

一。语法要点:

BEGIN TRY 

    { sql_statement ¦ statement_block } 

END TRY 

BEGIN CATCH 

          [ { sql_statement ¦ statement_block } ] 

END CATCH 

[ ; ] 


异常部分: 

在 CATCH 块的作用域内,可以使用以下系统函数来获取导致 CATCH 块执行的错误消息: 

ERROR_NUMBER() 返回错误号。 

ERROR_SEVERITY() 返回严重性。 

ERROR_STATE() 返回错误状态号。 

ERROR_PROCEDURE() 返回出现错误的存储过程或触发器的名称。 

ERROR_LINE() 返回导致错误的例程中的行号。 

ERROR_MESSAGE() 返回错误消息的完整文本。 该文本可包括任何可替换参数所提供的值,如长度、对象名或时间。 


二。实例:

Step 1:
Create PROCEDURE SysLogError 
AS
BEGIN
Insert into SystemErrorLog 
(SPName,Description,LogTime)
Values
(ERROR_PROCEDURE(),Convert(nvarchar(MAX),ERROR_LINE()) + ':' + ERROR_MESSAGE(),GetDate())
END

Step 2:

BEGIN TRY
    BEGIN TRANSACTION;


。。。。


    COMMIT TRANSACTION;

END TRY
BEGIN CATCH
    IF @@TRANCOUNT > 0
    BEGIN
        ROLLBACK TRANSACTION;
    END

    EXECUTE [dbo].[SysLogError];

END CATCH;

来源: 

转载于:https://www.cnblogs.com/funn0812/p/5497096.html

你可能感兴趣的文章
学习笔记-KMP算法
查看>>
学习笔记--树链剖分
查看>>
设计模式《JAVA与模式》之访问者模式
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
《架构之美》阅读笔记六
查看>>
boa web服务器
查看>>
将博客搬至CSDN
查看>>
AngularJS ng-model在ng-if里面无效
查看>>
今天2019年5月,21点58分
查看>>
JavaScript_几种创建对象(2017-07-04)
查看>>
类的初始化
查看>>
centos 7 install eclipse cdt and use github
查看>>
android自定义键盘光标不显示解决方法
查看>>
第一章 大型网站架构演化
查看>>
java基础<迷你DVD系统>
查看>>
NO.6LINUX基本命令
查看>>
Ubuntu查找通过apt命令已安装软件
查看>>
关于GC和析构函数的一个趣题
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>