启用 CLR 的代码 + 子查询返回了超过 1 个值

CLR enabled Code + Subquery returned more than 1 value

只要有子查询用于检索列,如果它 returns 多于 1 个值,就会发生错误:

Subquery returned more than 1 value

这发生在我们的一个 ssis 包中,它使用的存储过程引发了这个错误。

有人说我们要探索如果在 SQL 服务器中使用启用 CLR 的代码,我们能否确定由于哪个列或查询发生了这个错误。

我还没有编写启用 CLR 的 SQL 代码。但是当我得到这种错误时 SQL 没有提供更多细节。我们必须深入研究代码并检查导致问题的原因。

.net 代码(启用 CLR SQL)是否可以提供比我们在 SQL 服务器上执行存储过程时提供的错误更多的详细信息?

没有。 SQL 服务器正在报告该错误,因此 SQLCLR 代码将收到完全相同的错误消息。

存储过程中的 T-SQL 代码应该在 TRY / CATCH 中,CATCH 块应该报告 ERROR_LINE () 以便您可以缩小范围。