Обнаружение нового столбца в источнике, не сопоставленном с пунктом назначения, и сбой в службах SSIS - PullRequest
0 голосов
/ 23 февраля 2019

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

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

1 Ответ

0 голосов
/ 23 февраля 2019

Обновление 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 Source ValidatExternalMetadata значение True.

. При добавлении новых столбцов должно появиться исключение типа.

VS_NEEDSNEWMETADATA

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

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

...