Я использую SQL Server 2008 Enterprise. Мне нужно импортировать все данные из сервера / экземпляра «Server Foo», базы данных «Foo» и таблицы «Foo», в целевой сервер / экземпляр «Server Goo», базу данных «Goo» и таблицу «Goo». Table Foo и Table Goo имеют одинаковую схему. Если для таблицы Goo существует одна и та же строка, я хочу сохранить исходные данные в Goo и ввести строку импорта в Foo (у таблицы Foo и таблицы Goo есть столбец типа uniqueidentifier с именем CustomerID, который действует как первичный ключ и кластерный индекс), просто как игнорировать дубликат ключа.
Я ищу простые и надежные способы написания T-SQL для решения проблемы экспорта / импорта данных. Какие-либо эталонные образцы?
РЕДАКТИРОВАТЬ 1:
Я пробовал приведенное ниже решение с использованием MERGE, но столкнулся со следующей ошибкой в SQL Server Management Studio. Есть идеи что не так?
Дополнительная информация:
LabTest1 \ SQLServer2008 => Сервер \ Имя экземпляра;
OrderDB => имя БД;
dbo => имя схемы;
Заказы => Название таблицы.
merge into [dbo].[Orders] as Target
using "LabTest1\SQLServer2008.OrderDB.dbo.Orders" as source
on target.Hash = source.Hash
when not matched then
INSERT ([Hash]
,[Order]
,[Name]
,[CreationTime]
,[Description])
VALUES
(
source.[Hash], source.[Order], source.[Name], source.[CreationTime], source.[Description]
)
when MATCHED then
;
Сообщение об ошибке:
Сообщение 102, Уровень 15, Состояние 1, Строка 16
Неверный синтаксис рядом с ';'.
спасибо заранее,
George