В SQL Server, каков наилучший способ объединения таблиц из нескольких баз данных? - PullRequest
1 голос
/ 09 июля 2010

Извините, что не могу найти лучшего названия моего вопроса.Не позвольте мне описать это подробно.

У меня есть 4 базы данных, которые a, b, c и d .База данных a имеет все таблицы, которые отображаются в b , c и d , и имеют одинаковую структуру с одинаковыми ограничениями (pk, по умолчанию, проверьте). b , c , d просто есть некоторые таблицы, которые появляются в a .Теперь уже есть некоторые данные в a , b , c и d b , c , d данных больше, чем в a .И, вероятно, есть дублированные данные с b , c , d .

Теперь я хочу экспортировать все данные в b , c , d и импортируйте их в a .У меня уже есть решение, но я хочу знать, как лучше всего выполнить такую ​​сложную задачу.

Спасибо.

Ответы [ 2 ]

1 голос
/ 10 июля 2010

UNION (без ALL) в подзапросе удалит дубликаты. Тогда IS NULL в поле Где будут вставлять только новые строки в Table1.

Insert Into DatabaseA.dbo.Table1(ID, Value)
Select ID, Value
FROM (
    Select ID, Value From DatabaseB.dbo.Table1
    UNION
    Select ID, Value From DatabaseC.dbo.Table1
    UNION
    Select ID, Value From DatabaseD.dbo.Table1
    ) T
LEFT JOIN DatabaseA.dbo.Table1 S ON T.ID = S.ID 
WHERE S.ID IS NULL
1 голос
/ 09 июля 2010

Вы можете выполнить инструкцию Insert Into с помощью объединения, которое получает результаты из других баз данных

Insert Into dboTableA(ID, Value)
Select ID, Value From dbo.DatabaseB.TableA
UNION AlL
Select ID, Value From dob.DatabaseC.TableA
UNION ALL
Select ID, Value From dbo.DatabaseD.TableA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...