SSIS проверяет, была ли запись удалена

Я столкнулся с ситуацией, когда я создал пакет SSIS для консолидации таблицы из нескольких баз данных, но иногда администратор базы данных вручную удаляет записи из исходных таблиц. Есть ли способ определить в консолидированной таблице, была ли запись удалена? Я знаю, что могу обрезать сводную таблицу каждый раз перед запуском пакета, но мне интересно, есть ли другой способ?


person ilija veselica    schedule 08.03.2012    source источник
comment
привет, можно подробнее? Вы читаете DB1, DB2 и DB3 и вставляете данные в сводную таблицу, верно? В чем проблема с удалением исходных БД? это что-то ломает? или это просто недостающая запись?   -  person Diego    schedule 08.03.2012
comment
Есть ли в вашей консолидированной таблице механизм уникальной привязки строки к исходной системе?   -  person billinkc    schedule 08.03.2012
comment
@Diego: если запись из DB1 удалена, она все еще существует в сводной таблице.   -  person ilija veselica    schedule 09.03.2012
comment
@billinkc: я могу связать строку (логически) из консолидированной базы данных с исходной базой данных по originalID и sourceID.   -  person ilija veselica    schedule 09.03.2012
comment
но в чем проблема? вы хотите удалить из целевой таблицы тогда?   -  person Diego    schedule 09.03.2012


Ответы (2)


Я демонстрирую один из способов управления удалением данных в месте назначения, которые были удалены в источнике, в Stairway to Integration Services. серия в SQL Server Central.

Надеюсь, это поможет, Энди

person Andy Leonard    schedule 08.03.2012

Я думал о нескольких решениях, но теперь я понимаю, что большая проблема заключается в том, что у вас нет единого источника данных, поэтому запись может не существовать в A, но существовать в B, поэтому вы не можете ее удалить.

Итак, мое предложение: после того, как вы вставили, запустите выберите отдельный (идентификатор) из всех источников и поместите их вместе в структуру (таблица, временная таблица, представление, UNION, что угодно..) и запустите слияние из этого источника в пункт назначения на идентификаторы только с WHEN NOT MATCHED THEN DELETE.

person Diego    schedule 09.03.2012