Как объединить две таблицы из разных баз данных в MS SQL Azure? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть две разные таблицы в двух разных базах данных. Нужно объединить обе таблицы и получить результаты с помощью запроса

1) отчеты - идентификатор_отчета, имя_отчета, описание

таблица отчетов присутствует в базе данных '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'

Кто-нибудь, пожалуйста, помогите мне решить эту проблему?

1 Ответ

0 голосов
/ 16 мая 2019

Вам нужно использовать эластичные запросы для выполнения кросс-запросов к базе данных. Смотрите следующий пример:

Информация для клиента (удаленная база данных)

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...