每当有一个子查询用于检索列时,如果它返回的值超过1,则会发生错误:
子查询返回的值超过1个
我们的一个ssis包正在使用一个存储过程抛出此错误。
有人说我们要探索在SQL Server中使用支持CLR的代码是否可以识别出由于哪个列或查询发生了此错误。
我还没有使用过支持CLR的SQL代码。但是当我遇到这种错误时,SQL并没有提供更多细节。我们必须深入研究代码并检查导致问题的原因。
在我们在SQL Server上执行存储过程时,.net代码(启用CLR的SQL)是否有可能提供有关错误的更多详细信息?
答案 0 :(得分:1)
没有。 SQL Server报告错误,因此SQLCLR代码将收到完全相同的错误消息。
存储过程中的T-SQL代码应该在TRY / CATCH中,而CATCH块应该报告ERROR_LINE ()
,以便缩小范围。