UPSERT в SSIS

Я соглашаюсь с pez и некоторыми здесь.

для меня кажется очевидным, который "новый" сам описательное создание объекта, где шаблон YUI, который описывает Greg Dean, , полностью затенил .

возможность кто-то мог записать var bar = foo; или var bar = baz();, где baz не является методом создания объекта, кажется далеким более опасный.

5
задан Raj More 15 July 2009 в 15:25
поделиться

3 ответа

См. SQL Server 2008 - Использование слияния из SSIS . Я реализовал нечто подобное, и это было очень просто. Просто использовать страницу BOL Вставка, обновление и удаление данных с помощью MERGE было достаточно, чтобы начать работу.

10
ответ дан 18 December 2019 в 13:17
поделиться

Я бы посоветовал вам взглянуть на блог Мэта Стивена об обновлении SQL Server.

SQL 2005 - UPSERT: По сути, но не по имени; но наконец!

3
ответ дан 18 December 2019 в 13:17
поделиться

Основные команды языка манипулирования данными (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, как есть присутствует в Table_1 не в Table_2

SELECT * FROM TABLE_1 INTERSECT SELECT * FROM  TABLE_2 

вернет 1,2,5, поскольку они присутствуют в обеих таблицах Table_1 и Table_2.

Теперь все проблемы сложных объединений устранены :-)

Чтобы использовать эту функциональность в SSIS, все, что вам нужно сделать, добавить задачу «Выполнить SQL» и поместить туда код.

2
ответ дан 18 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: