gpt4 book ai didi

c# - 如何记录存储过程错误

转载 作者:太空狗 更新时间:2023-10-30 00:22:41 25 4
gpt4 key购买 nike

场景:C# 应用程序使用 SQL2000。它在应用程序的 try catch 中执行了 3 个存储过程。在 catch 中,错误被抑制了。由于某些合法性,无法更改和实现 c# 代码。

问:如何将存储过程中的实际 SQL 错误捕获到日志文件或其他表中? @@Error 向应用程序返回一条错误消息,但在查询分析器中评估时它始终为 0,尽管“If @@Error <> 0”确实触发。我尝试存储 @@Error 编号,但它始终为 0。

请帮忙。

最佳答案

@@ERROR 检查时重置为 0。为什么?因为它反射(reflect)了最后一条语句执行的状态。

IF @@ERROR <> 0 ...

是一个语句,那个语句成功,导致@@ERROR被设置为0。

检查和操作 @@ERROR 值的正确方法如下:

DECLARE @ErrorCode INT

INSERT INTO Table ...

SET @ErrorCode = @@ERROR
IF @ErrorCode <> 0
BEGIN
INSERT INTO ErrorLog (ErrorCode, Message)
VALUES (@ErrorCode, 'The INSERT operation failed.')
END

关于c# - 如何记录存储过程错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com