【问题标题】:Testing TRY...CATCH in SQL Server Management Studio [closed]在 SQL Server Management Studio 中测试 TRY...CATCH [关闭]
【发布时间】:2008-11-28 12:31:58
【问题描述】:

解决方案:

我误解了 SQL 联机丛书中的示例。是的,在以下部分 不受 TRY 影响的错误...CATCH 构造 ...我很抱歉 :(


我只是想在 SQL Server Management Studio 中执行这个简单的示例:

USE AdventureWorks;
GO

BEGIN TRY
    -- Table does not exist; object name resolution
    -- error not caught.
    SELECT * FROM NonexistentTable;
END TRY
BEGIN CATCH
    SELECT 
        ERROR_NUMBER() as ErrorNumber,
        ERROR_MESSAGE() as ErrorMessage;
END CATCH

但我发现的唯一输出是:

消息 208,第 16 级,状态 1,第 5 行 无效的对象名称 '不存在的表'。

所以,错误似乎是由 SQL Server Management Studio 而不是 catch 块捕获的,这显然不是我的预期。我错过了什么吗?

提前致谢:)

【问题讨论】:

    标签: sql-server tsql


    【解决方案1】:

    您的第一个示例是在 SQL 联机丛书中使用的,您是从那里复制的吗?如果是这样,请阅读整个主题,您会发现这确实行不通。 Management Studio 不会引发该错误,它是名称解析错误,不会被 TRY/CATCH 块捕获。

    【讨论】:

    • 哎呀,是的,你是对的。这是我忽略文档的错。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    相关资源
    最近更新 更多