我在几个列和表上运行一批语句,并希望检索有关发生错误的信息.
该语句是类型更改(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也返回第二个错误)