Мне нужно написать пакет служб SSIS в 2008 году с использованием BIDS, и у меня есть простой цикл foreach, который считывает список серверов и БД из базы данных, а затем перебирает их, выполняя различные потоки данных.
Проблема, с которой я сталкиваюсь, заключается в проверке - я установил Delayed Validation = true
везде, где мне нужно, но всякий раз, когда изменяется какая-либо часть источника OLEDB (имея динамическое соединение через foreach), он настаивает на повторной проверке подключение. Это означает, что каждый раз, когда код изменяется, мне нужно создать новое соединение, а затем снова установить выражения для сервера и базы данных. Я заново создал пакет в 2013 году с использованием инструментов данных SQL и вполне могу использовать одно соединение с базой данных со свойствами, установленными во всех потоках данных.
Это известное ограничение в 2008 году или я что-то не так делаю?
отредактируйте, чтобы прояснить вопрос
Я не изменяю ничего во время выполнения, кроме свойств соединения, так как оно циклически перебирает список серверов и баз данных для подключения. Проблема в конструкторе, так как он не остановит попытки проверить соединение. Так, например, в SSIS 2013+ свойства соединения устанавливаются динамически, и если я изменяю базовый вызов данных, я переключаюсь на не динамическое соединение, обновляю столбцы и метаданные и т. Д., Затем переключаюсь обратно на мое динамическое соединение. Совершенно никаких проблем. В 2008 году, когда я переключаюсь обратно на динамическое соединение, оно не будет проверяться (так как выражения задаются во время выполнения), и мне фактически нужно установить новое соединение, затем установить его свойства по выражению, и оно будет счастливым. Очевидно, что в процессе разработки и тестирования это PITA. Надеюсь, это немного понятнее.