При работе с SQL Server Integration Services (SSIS) одним из самых раздражающих аспектов является чувствительность к версии. Она может вызывать много путаницы и проблем, особенно в крупных компаниях с несколькими версиями SQL и несколькими командами, создающими SSIS-пакеты для разных версий.
Допустим, вы создаете пакет в SQL Server Data Tools (SSDT) 2012. Позже вы открываете этот же пакет с помощью SSDT 16, не осознавая этого. SSDT автоматически обновляет ваш пакет до версии 8, которая совместима с SQL Server 2014 и 2016. Вы запускаете пакет, и SSDT автоматически сохраняет его. Однако теперь вы не можете открыть этот же пакет в SSDT 2012, и у вас также могут возникнуть проблемы при его запуске на исходном экземпляре SQL Server 2012.
Чтобы избежать этой путаницы, полезно вести таблицу, в которой отслеживаются разные версии пакетов. Однако есть хорошие новости. Одним из значительных изменений в SSDT является возможность изменения версий SSIS без необходимости создавать пакет в языке разметки бизнес-интеллекта (BIML) и создавать его в правильной версии.
Давайте пройдем процесс изменения версии SSIS в SSDT:
- Установите последнюю версию SSDT.
- Создайте проект в SSDT.
- Щелкните правой кнопкой мыши на проекте и выберите “Свойства”.
- В разделе “Свойства конфигурации” -> “Целевая версия сервера” вы увидите выпадающее меню, которое позволяет установить версию на SQL Server 2012 или любую другую версию до SQL Server vNext.
- Выберите желаемую версию, в данном случае SQL Server 2012.
- Постройте проект.
После построения проекта, если вы изучите файл dtsx, вы заметите, что packageformatversion теперь равен 6. Это изменение указывает на то, что пакет совместим с выбранной версией SQL Server.
Важно отметить, что если вы используете файл ispac и передаете его кому-то, использующему более низкую версию SSDT, но более высокую, чем версия, которую вы экспортировали, мастер развертывания автоматически обновит пакет при его развертывании. Это может привести к неожиданным сюрпризам, поэтому важно сообщать о совместимости версий, чтобы избежать проблем.
После установки желаемой версии и построения проекта вы можете развернуть и запустить пакет на соответствующем экземпляре SQL Server. Просто измените свойства менеджера подключений, чтобы указать правильный экземпляр и базу данных.
Понимая и используя функцию чувствительности к версии в SSDT, вы можете создавать SSIS-пакеты, совместимые с разными версиями SQL Server, что позволяет без проблем развертывать и выполнять их в различных средах.
Не забывайте, что всегда можно подтвердить версию формата пакета, выполнив запрос к таблице SSISDB.internal.packages.
Счастливого кодирования!