我收到了关于我正在程序中运行的SQL查询的错误消息。Server 2005T-SQL.
异构查询要求为连接设置
ANSI_NULLS
和ANSI_WARNINGS
选项。这确保了一致的查询语义。启用这些选项,然后重新发出查询。(严重程度16)
修复它很容易,设置ANSI_NULLS
和ANSI_WARNINGS
ON
,但是我想知道什么是异构查询。谷歌搜索带来了数十个结果,告诉我设置ANSI_NULLS
和ANSI_WARNINGS
,但没有解释这个词的意思。查询是:
UPDATE SRV.DB.DBO.TABLE SET Column=
(SELECT Column
FROM SRV1.DB.DBO.TABLE)
我认为这是因为在一个查询中连接到多个数据库引擎,否则我就不会得到这个错误。
“异构”只是指在这个上下文中查询两个不同的数据库引擎吗?
发布于 2011-11-14 18:44:09
“异构”只是指在这个上下文中查询两个不同的数据库引擎吗?
基本上是的。在“异构链接服务器”上执行“异构”查询。对此链接服务器的所有查询都将是异构的。
而“异质”是分布式查询的一个子集。
但“异质性”时有发生:
参见MSDN上的链接服务器
能够在跨企业的异构数据源上发布分布式查询、更新、命令和事务。
sp_addlinkedserver
链接服务器允许访问针对OLE数据源的分布式异构查询。
和一个在“连接异构数据”中查询Active的MSDN示例
再来一次“异构数据库复制”
发布于 2011-09-30 19:08:17
据我所知是的。
我在查询中看到的一个问题是,您无法知道哪一行将从您的链接表返回。这只是虚拟代码,还是您的查询是这样编写的?
发布于 2017-12-19 22:34:05
异质性只是意味着不同。因此,一个异构查询位于一个数据库中,并且正在查询另一个数据库。由于数据库是不同的,它带来了设置不同的可能性,这可能会导致与预期不同的结果。
https://dba.stackexchange.com/questions/6387
复制相似问题