Обнаружение нового столбца в источнике, не сопоставленном с пунктом назначения, и сбой в службах SSIS

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

Я сделал таблицу в обоих называемых test с одной колонкой, testcol. SSIS передает данные. Теперь я добавил testcol2 к источнику, но не к месту назначения. Работа по-прежнему работает нормально, как сегодня, но я хочу, чтобы это не сработало и сообщило об ошибке несопоставленного столбца.

1 ответ

Обновление 1

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

Исходя из этого, я не думаю, что в SSIS есть возможность сделать это, вы должны добавить свою собственную проверку в пакет, такой как:

  1. Объявите переменную, которая содержит количество столбцов (при создании пакета), затем добавьте задачу "Выполнение SQL", которая проверяет текущее количество столбцов ( SELECT Count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ? ) Если количество не совпадает, тогда выведите исключение.
  2. Создайте справочную таблицу, которая содержит столбцы исходной таблицы, и добавьте задачу "Выполнение SQL", чтобы проверить, есть ли новые добавленные столбцы ( SELECT Count(*) FROM Information_schema.Column T1 LEFT JOIN Source Columns T2 ON T1.COLUMN_NAME = T2.Column_name WHERE T2.Column_Name IS NULL ) затем вы проверяете, равен ли результат> 0, а затем выдает исключение.
  3. Используйте задачу "Выполнение SQL" для чтения из таблицы аудита схемы базы данных:

Начальный ответ

Вы можете добиться этого, установив источник OLEDB ValidatExternalMetadata собственность на True,

Когда добавляются новые столбцы, он должен выдавать исключение типа.

VS_NEEDSNEWMETADATA

Имейте в виду, что это может занять дополнительное время при выполнении пакета.

Для получения дополнительной информации обратитесь к:

Другие вопросы по тегам