Вставить данные из одной базы данных в другую, если запись не существует - PullRequest
1 голос
/ 18 марта 2019

Я искал пару дней и не смог найти способ скопировать данные из 1 базы данных в другую.

Я ссылался на Копирование таблиц из одной базы данных в другую в SQL Server и Как скопировать строку из таблицы в другую таблицу, если запись не существует в новой таблице в sql - выдать какой-то запрос, и он показал [затронуто 0 строк] ( создал несколько фиктивных записей только в исходной базе данных, чтобы проверить, работает ли он)

Запрос, как показано ниже: - [Столбец1 и Столбец2 являются первичными ключами, Столбец1 может быть одинаковым, но столбец2 должен быть другим]

USE Destination
INSERT INTO Destination.dbo.Table(Column1, Column2, Column3 etc...)
SELECT * FROM Source.dbo.Table(Column1, Column2, Column3 etc...) 
WHERE Source.dbo.Table.Column1= Column1 And Source.dbo.Table.Column2 Not In (Column2)

Благодарим вас за то, что кто-то может сообщить мне, что не так с запросом / любым другим подобным вопросом, на который я не ссылался / любой метод может работать так же.

1 Ответ

1 голос
/ 18 марта 2019

Я думаю, вы можете попытаться использовать exists и not exists, чтобы сделать это.

USE Destination
INSERT INTO Destination.dbo.Table(Column1, Column2, Column3 etc...)
SELECT t1.Column1, t1.Column2, t1.Column3 etc... 
FROM Source.dbo.Table t1
WHERE   
     exists (
        SELECT 1
        FROM Destination.dbo.Table t2
        WHERE t2.Column1  = t1.Column1
     )
And 
    not exists (
        SELECT 1
        FROM Destination.dbo.Table t2
        WHERE t2.Column2  = t1.Column2
     )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...