SQL SERVER 2008中如何跨越多个数据库取数,整合到一张新视图里面?

我有三个数据库A/B/C,数据库中都有共同的一张表Table,表中所有的列都相同(ID,CODE),我如何通过SQL语句把这三张表整合到一张视图里面,而且里面的三张表所有... 我有三个数据库A/B/C,数据库中都有共同的一张表Table,表中所有的列都相同(ID,CODE),我如何通过SQL语句把这三张表整合到一张视图里面,而且里面的三张表所有的列都需要,具体显示如下:A.Table.id A.Table.CODE B.Table.ID B.Table.CODE C.Table.ID C.Table.CODE 展开
 我来答
morliz子轩
2015-11-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:56%
帮助的人:2689万
展开全部

本机数据库间的跨度,引用举例:

联合查询这两个表

select * from dbA.dbo.tb1 t1

left join dbB.dbo.tb2 t2 on t1.key1=t2.key2

关键:表明的前缀:dbA.dbo.tb1,即:数据库名.dbo.表名


计算机网络间数据库跨度,举例:

SELECT I.*, M.*
  FROM OPENROWSET('SQLOLEDB', '192.168.10.2'; 'sa'; '123', [Database1].[dbo].[Table1]) I
   INNER JOIN (
      SELECT DISTINCT P.IPSAppID AppId, P.DepartmentId, C.CategoryId, T.Creator 
        FROM OPENROWSET
  ('SQLOLEDB', '192.168.10.1'; 'sa'; '123', [Database2].[dbo].[table2]) P LEFT JOIN (
SELECT DISTINCT LTRIM(DepartmentId) DepartmentId, UserName Creator 
    FROM OPENROWSET('SQLOLEDB', '192.168.10.1'; 'sa'; '123', [Database3].[dbo].[view1]) 
    WHERE UserName IN 
(SELECT DISTINCT Creator 
    FROM OPENROWSET('SQLOLEDB', '192.168.10.1'; 'sa'; '123', [Database1].[dbo].[Table1]) WHERE AppId = '8cefca00-9733-4976-951a-e19346603717' AND CategoryId = 'b14b4852-c0e4-4db6-a91e-704b699a8fa2')) T 
ON P.DepartmentId = T.DepartmentId 
LEFT JOIN OPENROWSET('SQLOLEDB', '192.168.10.1'; 'sa'; '123', [Database2].[dbo].[Table3]) C ON C.AppId = P.IPSAppID 
WHERE P.ClassId IS NULL AND T.Creator IS NOT NULL AND C.CategoryName = 'activity') M 
ON M.Creator = I.Creator 
WHERE I.AppId = '8cefca00-9733-4976-951a-e19346603717' AND I.CategoryId = 'b14b4852-c0e4-4db6-a91e-704b699a8fa2'
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式