我们有一个包含许多链接服务器查询的存储过程。执行时会显示警告:
警告:空值被聚合或其他 SET 操作消除。
为了抑制这一点,我尝试了:
设置 ANSI_WARNINGS 关闭
但这引发了这个错误:
异构查询需要为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这确保了一致的查询语义。启用这些选项,然后重新发出您的查询。
我看过的所有文章都提到将 ANSI_WARNINGS 设置为 ON 以使其正常工作。
但我绝对不想看到这些警告,因为我在 sp_send_dbmail 中将查询结果作为附件发送,该警告消息位于附件顶部。
是否可以抑制异构查询的警告?
这应该会删除您的警告。
没关系,找到了解决方法。代码是这样的:
我将其修改为:
它奏效了!
SQL 希望仅在执行远程查询时才启用警告。幸运的是,在我的情况下,Group By(生成 Null 值警告)是在本地完成的,所以我通过在远程查询之前打开警告来“欺骗”SQL。
但是,如果您的 Group By 是 RemoteServer 查询的一部分,那么您就不走运了,并且需要在分组之前将数据拉入本地。