我在两个不同的数据库中有两个不同的表。需要同时连接表和使用查询获取结果
1)报告-报告ID,报告名称,说明
表报告存在于数据库“ A”中
2) report_owners -report_id,report_owner
表report_owners存在于数据库“ B”中
尝试以下查询以联接表,但会引发错误(此版本的SQL Server不支持引用服务器和/或数据库)。
查询:
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”的交叉查询功能
有人请帮助我解决此问题吗?
答案 0 :(得分:0)
您需要使用elastic queries来执行跨数据库查询。请参见以下示例:
客户信息(远程数据库)
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