Основными командами языка управления данными (DML), которые использовались на протяжении многих лет, являются «Обновить», «Вставить» и «Удалить». Они делают именно то, что вы ожидаете: Insert добавляет новые записи, Update изменяет существующие записи, а Delete удаляет записи.
Оператор UPSERT изменяет существующие записи, если записи отсутствуют, ВСТАВЛЯЕТ новые записи.
Функциональность статистики UPSERT может быть достигнута двумя новыми наборами операторов TSQL. Это две новые
EXCEPT
INTERSECT
За исключением: -
Возвращает любые различные значения из запроса слева от операнда EXCEPT, которые также не возвращаются из правого запроса
Intersect: -
Возвращает любые различные значения, которые возвращаются как запросом слева, так и справа от операнда INTERSECT.
Пример: - Допустим, у нас есть две таблицы: Таблица 1 и Таблица 2
Table_1 column name(Number, datatype int)
----------
1
2
3
4
5
Table_2 column name(Number, datatype int)
----------
1
2
5
SELECT * FROM TABLE_1 EXCEPT SELECT * FROM TABLE_2
вернет 3,4, поскольку он присутствует в Таблице_1, а не в Таблице_2
SELECT * FROM TABLE_1 INTERSECT SELECT * FROM TABLE_2
вернет 1,2,5, поскольку они присутствуют в обеих таблицах Table_1 и Table_2.
Все боли сложных объединений теперь устранены :-)
Чтобы использовать эту функцию в службах SSIS, все, что вам нужно сделать, добавить задачу «Выполнить SQL» и поместить туда код.