繁体   English   中英

如何在 MS SQL Azure 中连接来自不同数据库的两个表?

[英]How to join two tables from different database in MS SQL Azure?

我在两个不同的数据库中有两个不同的表。 需要连接两个表并使用查询获取结果

1)报告- report_id、report_name、描述

表报告存在于数据库“A”中

2) report_owners - report_id, report_owner

表 report_owners 存在于数据库“B”中

尝试按照以下查询加入表,但它抛出错误(此版本的 SQL 服务器不支持对服务器和/数据库的引用)。

询问:

select * from [A].[dbo].['reports'] as all_reports
INNER JOIN
select * from [B].[dbo].['report_owners'] as all_owner
ON all_report.report_id = all_owners.report_id

注意:从数据库“A”可以访问数据库“B”的交叉查询功能

有人请帮我解决这个问题吗?

您需要使用弹性查询来执行跨数据库查询。 请参阅以下示例:

客户信息(远程数据库)

CREATE TABLE dbo.CustomerInformation (CustomerID int identity(1,1) , CustomerName nvarchar(255));

DECLARE @i int = 1;
WHILE @i < 20000
BEGIN
INSERT INTO CustomerInformation(CustomerName)
VALUES ('Frodo');

SET @i += 1;
END

在将使用外部表的数据库上

CREATE TABLE OrderInformation(OrderId Int identity(1,1), CustomerId int,Ordervalue int);


SET NOCOUNT ON;
DECLARE @i int = 1;
WHILE @i < 200 
BEGIN
INSERT INTO OrderInformation(CustomerId,Ordervalue)
Values (@I,111);

set @i += 1;
END

CREATE EXTERNAL TABLE  [dbo].CustomerInformation(
    CustomerID [int],
CustomerName nvarchar(255))
    WITH  
(  
    DATA_SOURCE = Stackoverflow  
); 

像这样查询远程表。

SELECT o.OrderId, c.CustomerID, c.CustomerName
  FROM OrderInformation o
  JOIN CustomerInformation c ON o.CustomerID = c.CustomerID
 WHERE o.OrderId = 155

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM