Member 13475897 Ответов: 0

Как мне объединить 2 таблицы с разных серверов


У меня есть таблица 1 в базе данных 1 на сервере 1, и я хочу соединить столбец 1 в таблице 1 в базе данных 1 на сервере 2 с таблицей 1 в базе данных 1 на сервере 1.

Что я уже пробовал:

Я запустил сценарий следующим образом, чтобы подключить 2 сервера

exec sp_addlinkedserver 'server2'


а потом я использовал этот скрипт, чтобы объединить мои 2 таблицы

SELECT Table1.Column1, [server2]. 
       [database1].dbo.table1.column1
FROM Table1, [server2].[database1].dbo.table1.column1
LEFT OUTER JOIN [server2].[database1].dbo.table1 ON(Table1.Column1 = [server2]. 
                [database1].dbo.table1.column1)
ORDER BY table1.column1

Santosh kumar Pithani

При создании связанного сервера следует использовать "Select Т1.коль,Т2.столбец col2 от [linkedserver1].[дБ].ДБО.таблица1 как Т1 внутреннее соединение [linkedserver2].[дБ].ДБО.таблица2 как Т2 по(Т1.на col1=Т2.на col1)"

Member 13475897

Спасибо, это вроде как сработало. Единственная проблема заключается в том, что в моей таблице нет данных.Пожалуйста, найдите мой полный запрос ниже и попросите меня записать его в терминах таблицы 1 и т. д. если тебе это нужно.

выберите OEINVH.INVNUMBER,OEINVH.ORDNUMBER,OEINVH.SHINUMBER,OEINVH.ПОКУПАТЕЛЬ,
OEINVD.LINENUM, ICITEM.ITEMNO,ICIOTH.MANITEMNO[штрих-код], OEINVD.QTYSHIPPED,OEINVD.INVUNIT,OEINVD.Цена,
OEINVD.EXTINVMISC[строка Итого], SalesOrderDetail.sord_Name
от [SVWSUSAV].[LOGDAT].dbo.OEINVH КАК OEINVH
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ OEINVD ON(OEINVH.INVUNIQ = OEINVD.INVUNIQ)
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ ICITEM ON(OEINVD.ITEM = ICITEM.FMTITEMNO)
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ ICIOTH ON(ICITEM.ITEMNO = ICIOTH.ITEMNO И ICIOTH.ЕДИНИЦА ИЗМЕРЕНИЯ = OEINVD.ИНВУНИТ)

ВНУТРЕННЕЕ СОЕДИНЕНИЕ [CRM\SQLEXPRESS].[CRM_Test].dbo.SalesOrderDetail как SalesOrderDetail
ON(OEINVH.Клиент = таблицы salesorderdetail.sord_Name разобрать равным database_default)

ГДЕ ОЕИНВХ.КЛИЕНТ В('SHO006','SHO005')
И OEINVH.INVUNIQ NOT IN(выберите INVUNIQ из InvoiceSent)
И OEINVH.INVDATE >= 20180415
заказ от OEINVH.INVNUMBER,OEINVD.LINENUM

Santosh kumar Pithani

вы использовали имена таблиц несколько раз,не давая правильных псевдонимов, возникнут проблемы двусмысленности.

0 Ответов