В SSIS 2008 у меня есть Задача сценария , которая проверяет, существует ли таблица в базе данных, и устанавливает логическую переменную.
В моем потоке данных я делаю Условное разбиение на основе этой переменной, чтобы я мог выполнять соответствующие команды OLE DB в зависимости от того, существует эта таблица или нет.
Если таблица существует, пакет будет работать правильно.Но если таблица не существует, SSIS проверяет метаданные команды OLE DB, которая не выполняется, определяет, что таблицы нет, и выдает ошибку с ошибкой, прежде чем что-либо делать.
Кажется, что нет никакого способа отловить или игнорировать эту ошибку (например, я пытался увеличить MaximumErrorCount
и различные различные настройки ErrorRowDescription
) или остановить ее когда-либо, проверяя команду (ValidateExternalMetadata
Похоже, это только влияет на дизайнера.)
У меня нет доступа к созданию хранимых процедур для переноса этого вида теста, а команды OLE DB не позволяют использовать префиксы IF OBJECT_ID('') IS NOT NULL
для любых операторов.вы делаете (в данном случае, DELETE FROM TableName WHERE X = ?
).
Есть ли другой способ, кроме использования компонента сценария для ручного запуска команды DELETE
строка за строкой?