假設目前我們登錄在minverva,我要關聯hades,下面是個簡單的例子:
给个简单的例子,用openrowset,假设我连接到服务器Database1
USE mabel --Database1的数据库
GO
SELECT a.* from prg_sys a
inner join OPENROWSET('SQLOLEDB','Database2';'misa';'*****','SELECT * from mis.dbo.prg_sys')AS b--这里连接到Database2,关联其下数据库mis的一个表
on a.P_SYS = b.P_SYS
GO

解决方案 »

  1.   

    严重感谢MorningTea(一勺抹茶)兄,你的回复相信会给我不少启发。我之前的想法是,我面对的分布式系统中所有数据库服务器是对等的,但经过研究资料发现MS SQL是不可能实现这种做法的(不知道其它数据库行不行),这一点也在你的回复中得到了证实,也就是说,我们必须先登陆到一个服务器上(那就是以它为主了,至少是借用了人家一下嘛,^_^),才能谈得上进一步的分布式操作。一旦认同并想通了这一点,那么剩下的问题就都容易解决了。不过,我想可能还是使用链接服务器好一点,这样做的优点之一是查询SQL语句中不会出现跟MS SQL(比如OPENROWSET函数)耦合太紧密的内容(甚至通过一些特殊手段可以实现与标准SQL的完全兼容),优点之二是SQL语句编写起来要简洁一些,尤其在频繁改变SQL语句进行分布查询的时候。使用链接服务器实现的版本我已经实验成功了。无论如何,还是非常感谢你的热心帮助。同时,也希望更多的朋友参与探讨这个问题。谢谢。