gpt4 book ai didi

tsql - 尝试…将错误捕获到错误日志表中

转载 作者:行者123 更新时间:2023-12-03 07:48:20 26 4
gpt4 key购买 nike

我在尝试TRY ... CATCH块时遇到问题。有人可以解释为什么以下代码无法执行我的sp吗?

DECLARE @Result int
SET @Result = 0
BEGIN TRY
SELECT * FROM TableNoExist
END TRY
BEGIN CATCH
SET @Result = ERROR_NUMBER()
END CATCH
EXEC dbo.spSecurityEventAdd @pSecurityEventTypeID = 11, @pResult = @Result

但是这段代码确实有效:
DECLARE @Result int
SET @Result = 0
BEGIN TRY
SELECT 1/0
END TRY
BEGIN CATCH
SET @Result = ERROR_NUMBER()
END CATCH
EXEC dbo.spSecurityEventAdd @pSecurityEventTypeID = 11, @pResult = @Result

我想确保我捕获了所有错误。
谢谢

最佳答案

编译和语句级重新编译错误

如果错误发生在与TRY ... CATCH构造相同的执行级别上,则TRY ... CATCH将不会处理两种错误:

编译错误,例如阻止批处理执行的语法错误。

在语句级重新编译期间发生的错误,例如由于延迟的名称解析而在编译后发生的对象名称解析错误。

http://msdn.microsoft.com/en-us/library/ms179296.aspx

关于tsql - 尝试…将错误捕获到错误日志表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2345045/

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