gpt4 book ai didi

sql-server - 我的 T-SQL 中的 Try Catch 有什么问题?

转载 作者:行者123 更新时间:2023-12-02 08:36:05 30 4
gpt4 key购买 nike

我正在使用 SQL Server 2008,当我在 Management studio 中运行此语句时,Catch block 中的 Select 语句将按预期执行

BEGIN TRY
INSERT INTO IDontExist(ProductID)
VALUES(1)
END TRY
BEGIN CATCH
SELECT 'There was an error! ' + ERROR_MESSAGE()
END CATCH

但是,当我运行此语句时,Catch block 中的语句永远不会执行,而是错误仅显示在结果选项卡中

BEGIN TRY
Select * from IDontExist
END TRY
BEGIN CATCH
SELECT 'There was an error! ' + ERROR_MESSAGE()
END CATCH

它们都返回相同的错误号“208”“无效对象名称:IDontExist”,那么为什么一个会得到处理而另一个则不会?

最佳答案

这在过去也曾困扰过我。

并非 TRY block 语句内生成的所有错误都会传递到 CATCH block 中。任何严重性为 10 或更低的错误都被视为警告,不会导致控制流向 CATCH block 。此外,任何中断数据库连接的错误都不会导致到达 CATCH block 。可能还有其他情况。

关于sql-server - 我的 T-SQL 中的 Try Catch 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556304/

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