Я хочу получить данные из источника назначения. Как я могу вставить строки, которых еще нет в таблице, и обновить уже существующие строки?
обновить таблицу назначения
Ответы (4)
Мы могли бы использовать LOOK UP для существующих записей. При совпадении Update в противном случае вставьте в цель.
Другой подход использования оператора MERGE.
Благодарность
прав
Используйте медленно изменяющееся преобразование измерения, см. http://msdn.microsoft.com/en-us/library/ms141715.aspx
Я бы рекомендовал компонент CozyRoc TableDifference. Я использовал предшественника из SQLBI.EU, и он очень хорош.
Я также рекомендую вместо использования компонента Command для запуска отдельных обновлений в потоке с обнаруженными обновлениями выполнять потоковую передачу обновлений в таблицу, а затем использовать один оператор UPDATE в задаче SQL для выполнения обновления.
Я нашел эту веб-трансляцию очень полезной для изучения некоторых различных методов выполнения "upserts" с помощью SSIS. Вы можете загрузить образцы, упомянутые в веб-трансляции, и увидеть рабочие примеры именно того, что вам нужно. Веб-трансляция по архитектуре MSDN: Использование служб интеграции SQL Server 2005 для заполнения хранилище данных по методу Кимбалла (уровень 200)