我在SQL Server 2012中查询了T-SQL语句,并启用了SQLCMD模式,在SSMS中以交互方式运行。有一个:on error exit
声明。当我运行查询时,查询窗口显示“查询已完成但有错误”但未显示错误消息。
如何显示错误消息?
答案 0 :(得分:0)
参考MSDN(RaiseError)来实现您的目标:
严重级别 11-19 将导致执行跳转到CATCH块。
BEGIN TRY
RAISERROR ('Error raised in TRY block.', -- Message text.
16, -- Severity.
1 -- State.
);
END TRY
BEGIN CATCH
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Use RAISERROR inside the CATCH block to return error
-- information about the original error that caused
-- execution to jump to the CATCH block.
RAISERROR (@ErrorMessage, -- Message text.
@ErrorSeverity, -- Severity.
@ErrorState -- State.
);
END CATCH;
注意:使用20到25之间的严重性级别被视为致命错误,将导致客户端连接突然终止。
答案 1 :(得分:0)
这是语法错误,而不是运行时错误。我不确定SQLCMD模式是否在SSMS中没有显示任何错误,如vanilla sQL。