如何在TSQL Select列表中找到抛出异常的项目?



我们有一个查询,在选择列表中有数百个函数。

其中一个函数抛出异常。

错误信息没有指明错误函数的正确行。它只显示Select语句开始的行号。

使用SSMS v18.12.1

您可以通过运行以下sql语句来复制它:

SELECT 
1,
2,
3,
1/0

输出:

Msg 8134, Level 16, State 1,Line 1除以遇到的零错误

显然错误来自第5行.

注意:添加TRY和CATCH块并不能提供更多线索:

BEGIN TRY
SELECT 
1,
2,
3,
1/0
END TRY
BEGIN CATCH
SELECT CONCAT(ERROR_MESSAGE(), ' Line: ',  ERROR_LINE())
END CATCH

输出:除以遇到的零错误。线:2

错误指示在您的示例中的第1行,因为它是基于集合的查询,即其中一个函数出错导致整个SELECT出错。

似乎您要做的是逐一遍历每个函数以检查错误。虽然我通常不愿意推荐游标,但这似乎是一个允许您逐步执行每个函数的选项。

相关内容

  • 没有找到相关文章

最新更新