我们有一个包含许多链接服务器查询的存储过程。执行时,它将显示一个警告:
警告: Null值由聚合操作或其他设置操作消除。
为了压制这一切,我试着:
启动ANSI_WARNINGS
但这造成了这样的错误:
异构查询要求为连接设置ANSI_NULLS和ANSI_WARNINGS选项。这确保了一致的查询语义。启用这些选项,然后重新发出查询。
我看过的所有文章都提到将ANSI_WARNINGS设置为ON以使其正常工作。
但是我绝对不想看到这些警告,因为我在sp_send_dbmail中以附件的形式发送查询结果,在附件的顶部有警告消息。
是否可以禁止针对异构查询的警告?
发布于 2016-02-26 16:19:27
没想过,找到了解决办法。该守则是这样的:
select name, count(*) from employees group by name
select * from RemoteServer..departments我把它修改为:
SET ANSI_WARNINGS OFF
select name, count(*) from employees group by name
SET ANSI_WARNINGS ON
select * from RemoteServer..departments而且起作用了!
SQL只希望在执行远程查询时才启用警告。幸运的是,在我的例子中,Group (它生成Null值警告)是在本地完成的,所以我在远程查询之前打开警告,从而“愚弄”了SQL。
但是,如果Group是RemoteServer查询的一部分,那么您就不走运了,需要在分组之前在本地提取数据。
发布于 2016-02-26 18:21:00
这应该可以消除你的警告。
select name, count(employeeId) from employees group by name
select * from RemoteServer..departmentshttps://dba.stackexchange.com/questions/130584
复制相似问题