相关疑难解决方法(0)

从TRY CATCH中的单个语句捕获多个错误消息

我在几个列和表上运行一批语句,并希望检索有关发生错误的信息.

该语句是类型更改(varchar到nvarchar),当它失败时,它似乎返回2个错误.

消息5074,级别16,状态1,行1对象'DF_XXX_YYY'取决于列'YYY'.

消息4922,级别16,状态9,行1 ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.

但是,当我将它包装在一个TRY/CATCH块中并选择时ERROR_MESSAGE(),它只返回第二个错误:

ALTER TABLE ALTER COLUMN描述失败,因为一个或多个对象访问此列.

理想情况下,我会让它返回第一条消息,因为这提供了更多信息.

确切的SQL语句是:

begin try
    alter table XXX
    alter column YYY
    nvarchar(200)
end try
begin catch
    select ERROR_MESSAGE(), ERROR_LINE(), ERROR_NUMBER(), ERROR_PROCEDURE(), ERROR_SEVERITY(), ERROR_STATE()
end catch
Run Code Online (Sandbox Code Playgroud)

有谁知道如何检索更多信息?(@@ERROR也返回第二个错误)

sql t-sql try-catch sql-server-2008

12
推荐指数
2
解决办法
6216
查看次数

标签 统计

sql ×1

sql-server-2008 ×1

t-sql ×1

try-catch ×1