什么是“异构查询”?

Ben*_*cka 15 sql-server terminology errors

我收到以下关于我在程序中运行的 SQL 查询的错误消息。SQL Server 2005 T-SQL。

异构查询需要为连接设置ANSI_NULLSANSI_WARNINGS选项。这确保了一致的查询语义。启用这些选项,然后重新发出您的查询。(严重性 16)

修复它很容易,设置ANSI_NULLSANSI_WARNINGS ON,但我想知道异构查询是什么。谷歌搜索带来了几十个结果,告诉我设置ANSI_NULLSANSI_WARNINGS,没有解释这个词的意思。查询是:

UPDATE SRV.DB.DBO.TABLE SET Column=
            (SELECT Column 
            FROM SRV1.DB.DBO.TABLE)
Run Code Online (Sandbox Code Playgroud)

我认为这是由于在一个查询中连接到多个数据库引擎,否则我从未遇到过此错误。
“异构”是否只是指在这种情况下查询两个不同的数据库引擎?

gbn*_*gbn 9

“异构”是否只是指在这种情况下查询两个不同的数据库引擎?

基本上,是的。“异构”查询在“异构链接服务器”上执行。对此链接服务器的所有查询都将是异构的。

而“异构”是分布式查询的一个子集

  • 分布式数据存储在 SQL Server 的多个实例中。
  • 存储在使用 OLE DB 提供程序访问的各种关系和非关系数据源中的异构数据。

但是“异构”时不时出现:

请参阅MSDN 上的链接服务器

在整个企业的异构数据源上发布分布式查询、更新、命令和事务的能力。

sp_addlinkedserver

链接服务器允许访问针对 OLE DB 数据源的分布式异构查询。

以及在“加入异构数据”中查询 Active Directory 的 MSDN 示例

和 MSDN 再次“异构数据库复制”


mrd*_*nny 6

据我所知是的。

我在您的查询中看到的一个问题是您无法知道将从链接表返回哪一行。这只是虚拟代码还是您的查询是这样编写的?