sql定位过程报错_SQLServer异常捕获

CREATE DATABASE TEST

USE TEST

/*=====================================================

相关错误消 息如下:

ERROR_NUMBER() 返回错误号。

ERROR_SEVERITY() 返回严重性。

ERROR_STATE() 返回错误状态号。

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

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

ERROR_MESSAGE() 返回错误消息的完整文本。

========================================================*/

CREATE TABLE LogTable

(

ID int identity(1,1),--错误序号

ErrorNumber int,--错误号

ErrorSeverity int,--严重性

ErrorState int,--错误状态号

ErrorProducure varchar(200),--出现错误的存储过程或 触发器的名称

ErrorLine int,--导致错误的例程中的行号

ErrorMessage varchar(200)--错误消息的完整文本

)

--===============除数不为0的异常捕获=================--

IF EXISTS (SELECT * FROM sysobjects WHERE id=OBJECT_ID(N'getWrong') AND xtype='P')

DROP PROC getWrong

go

CREATE PROC getWrong

AS

BEGIN

-----------------制造异常

BEGIN TRY

SELECT 1/0;

-----------------捕获异常

END TRY

BEGIN CATCH

INSERT INTO LogTable values(ERROR_NUMBER(),ERROR_SEVERITY(),ERROR_STATE(),ERROR_PROCEDURE(), ERROR_LINE() ,ERROR_MESSAGE())

END CATCH

END

--执行存储过程

EXEC getWrong

--查看日志表

select * from LogTable

--查看系统日志表

SELECT * FROM sys.messages WHERE message_id=8134 AND language_id=2052

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值