2013-10-11 2 views
0

Мне нужно сделать инкрементное извлечение с помощью SSIS. Мой сценарий выглядит примерно так: Мне нужно найти максимум datetime из моей таблицы и сохранить его в переменной, которую я использую в состоянии where моего OLE DB Source. Я использую преобразование компонента скрипта для обновления моей переменной. Проблема в том, что максимальное значение присваивается переменной во время выполнения, но когда я пытаюсь выполнить ее снова, переменная получает значение по умолчанию, которое я предоставил. Как сделать постоянным значение переменной?Как постоянное значение переменной в SSIS?

ответ

1

Вместо использования компонента «Сценарий» вы не могли бы сначала выполнить задачу «Выполнение SQL»?

В задаче SQL на вкладке «Общие» вы определяете свое соединение, а затем ваш SQLStatement, который получает максимальную дату. И вы установите ResultSet в «Single row».

Затем на вкладке Result Set сопоставьте результат с переменной, которую вы уже имеете.

How to assign value to variable with SQL task

+0

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

+0

Я не уверен, что я следую. Из того, что я понимаю, вы хотите извлечь из таблицы A в B, где вы получаете только строки в A, превышающие максимальную дату в B. Поэтому в моем случае я бы, как упоминалось выше, найти максимальную дату в B, а затем сохранить in в переменной, а затем извлечь из A, где date> @maxDate. Каждый раз, когда вы запускаете, код должен получать максимальную дату. Может быть, я не понимаю всю проблему. – Rupal

+0

На самом деле вся проблема в том, что касается инкрементальной экстракции. Мне нужно получить только новые записи из исходной таблицы на основе столбца даты, который у меня есть в моем источнике. –

Смежные вопросы