Проблема слияния базы данных с дублирующимися строками

#database #ssis #copy #duplicates #rows

#База данных #ssis #Копировать #дубликаты #строки

Вопрос:

У меня есть DB1 и DB2. Я хочу экспортировать данные всех таблиц из DB1 в DB2. Некоторые таблицы в DB2 имеют строки, похожие на DB1. Это выдает ошибку независимо от того, какой метод я использую в SSIS из-за ограничения PK. Как я могу игнорировать строки, которые присутствуют в целевых таблицах «на лету», и продолжить копирование с другими. Мне нужно запустить процесс для всей базы данных сразу. У меня есть 100 таблиц, поэтому выполнение для каждой таблицы не сработает. Я пытался использовать управление задачами переноса объектов SQL Server в SSIS (BI), но это не дает мне возможности разобраться с моим случаем.

Любая помощь высоко ценится, и она не является срочной.

Ответ №1:

Для этого вы можете использовать поиск.

http://jahaines.blogspot.com/2009/09/ssis-only-inserting-rows-that-do-not.html

Редактировать: если вам нужно объединить данные из двух таблиц, затем объедините два источника данных с помощью компонента слияния, затем используйте поиск после таблицы слияния. Если у вас есть дубликаты в объединенных данных, то вы можете использовать компонент сортировки между слиянием и поиском и установить флажок, чтобы удалить дубликаты. Однако имейте в виду, что использование компонента сортировки является дорогостоящим с точки зрения использования ресурсов.

Другим способом достижения этой цели было бы поместить все данные из двух таблиц в одну промежуточную таблицу в принимающем окне SQL. Затем напишите сохраненную процедуру для вставки только новых строк в рабочую таблицу, наконец, сократите промежуточную таблицу. Я бы вызвал SP из потока управления в качестве задачи выполнения SQL.

Лично я бы использовал метод промежуточной таблицы, поскольку метод проб и ошибок показал, что для меня это проще и эффективнее всего. Не требуется дорогостоящих сортировок и поисков (поиск не стоит дорого), но работа на основе наборов в SP — это то, что любит делать движок SQL.

Комментарии:

1. Да, я думал об управлении поиском, но не смог найти способ скопировать все таблицы с помощью поиска за один запуск. Есть ли какой-либо доступный элемент управления, который позволяет объединить две базы данных с похожей схемой посредством поиска?