SQLserver 存储过程执行错误记录到表
来源:互联网 发布:查电话号码软件 编辑:程序博客网 时间:2024/04/30 04:39
对于在执行存储过程中碰到的一些错误,如果未及时捕获或者说传递给前端应用程序来,在这样的情形下,故障的排查显得尤为困难。基于此,我们可以可以将这些错误信息记录到日志,同时也可以将其传递给前端应用程序。如本文的示例。
一、将错误信息记录到表
CREATE TABLE ErrorLog( ID INT IDENTITY (1,1) NOT NULL, ErrorNumber INT, ErrorMessage VARCHAR(1000), ErrorSeverity INT, ErrorState INT, ErrorLine INT, ErrorProcedure VARCHAR(128), ErrorDate datetime);CREATE PROCEDURE CatchErrorDemoAS --相关业务逻辑 BEGIN TRY SELECT 1 / 0; END TRY--相关错误捕获 BEGIN CATCH PRINT 'Error Number:' + CAST(ERROR_NUMBER() AS VARCHAR(10)); PRINT 'Error Serverity: ' + CAST(ERROR_SEVERITY() AS VARCHAR(10)); PRINT 'Error State: ' + CAST(ERROR_STATE() AS VARCHAR(10)); PRINT 'Error Procedure: ' + ERROR_PROCEDURE(); PRINT 'Error Line: ' + CAST(ERROR_LINE() AS VARCHAR(10)); PRINT 'Error Message: ' + ERROR_MESSAGE(); INSERT INTO ErrorLog ( ErrorNumber , ErrorSeverity , ErrorState , ErrorProcedure , ErrorLine , ErrorMessage , ErrorDate ) VALUES ( ERROR_NUMBER() , ERROR_SEVERITY() , ERROR_STATE() , ERROR_PROCEDURE() , ERROR_LINE() , ERROR_MESSAGE() , GETDATE() ) END CATCH;--执行相关存储过程,并查询日志表,同时与系统消息表进行对比EXEC CatchErrorDemo;SELECT * FROM ErrorLog;
二、传递错误信息
CREATE PROC CatchErrorDemo2 @a INT , @rtn VARCHAR(20) OUTPUT , @rtn_message VARCHAR(200) OUTPUTAS BEGIN BEGIN TRY DECLARE @result INT; SET @result = 'A' + @a; END TRY BEGIN CATCH SET @rtn = @@ERROR; SET @rtn_message = 'Error Number: ' + CAST(ERROR_NUMBER() AS VARCHAR(10)) + ' Error Serverity: ' + CAST(ERROR_SEVERITY() AS VARCHAR(10)) + ' Error State: ' + CAST(ERROR_STATE() AS VARCHAR(10)) + ' Error Procedure: ' + ERROR_PROCEDURE() + ' Error Line: ' + CAST(ERROR_LINE() AS VARCHAR(10)) + ' Error Message: ' + ERROR_MESSAGE(); END CATCH; END;GO--调用存储过程DECLARE @rtn INT , @rtn_message VARCHAR(200);EXEC CatchErrorDemo2 0, @rtn OUTPUT, @rtn_message OUTPUT;PRINT @rtn;PRINT @rtn_message;245Error Number: 245 Error Serverity: 16 Error State: 1 Error Procedure: CatchErrorDemo2 Error Line: 10 Error Message: 在将 varchar 值 'A' 转换成数据类型 int 时失败。
2 0
- SQLserver 存储过程执行错误记录到表
- Sqlserver定时执行存储过程
- Sqlserver定时执行存储过程
- 启动SQLSERVER时自动执行存储过程
- asp.net执行SqlServer存储过程!(详解!)
- SQLserver中直接执行存储过程
- asp.net执行SqlServer存储过程!(详解!)
- sqlserver存储过程小问题记录
- SQLServer导出表到EXCEL文件的存储过程
- python3备份SqlServer存储过程代码,并保存到本地,并发送邮件告知修改记录
- 执行存储过程报错:“SQLSERVER 内部错误。文本管理器无法继续执行当前语句”的处理方法
- 将存储过程执行的结果保存到临时表
- mysql5.5执行 存储过程1329错误
- 获取sql 中执行错误存储过程
- hibernate 调用存储过程几个错误 记录
- mysql 存储过程错误调试记录
- powerbuilder 中,自动执行批量建表、存储过程。。。(sqlserver数据库)
- SQLSERVER 存储过程里如何执行SQL语句
- 面向项目(四)—— 可移植性的考虑
- Pandas——ix vs loc vs iloc区别
- 图片选择器
- Reset
- 数据结构--绪论自测题
- SQLserver 存储过程执行错误记录到表
- python发邮件
- 第9周项目2-我的数组类
- HDU 1429 胜利大逃亡(续)
- 各种消息下wParam及lParam值的含义
- app内存优化
- 数据结构与算法:C++实现归并排序
- Shell中字符串的截取方法
- python 本地数据获取