#sql-server #ssis #sql-server-2012 #visual-studio-2019 #ssis-2019
#sql-server #ssis #sql-server-2012 #visual-studio-2019 #ssis-2019
Вопрос:
У меня есть базовый пакет, который включает в себя пару задач Exec SQL и задачу потока данных. Он был разработан с использованием Visual Studio 2019 (последняя версия на данный момент) в модели развертывания пакета. Выполнение в VS работает отлично, но не выполняется при запуске агентом SQL (в рамках стандарта SQL Server 2012) из-за этой ошибки
«Сбой переноса пакета с версии 8 на версию 6 с ошибкой 0xC001700A «Номер версии в пакете недопустим. Номер версии не может быть больше номера текущей версии.». «
Что я пробовал:
1- Я уже прочитал все другие ответы на этот же вопрос: я прошел через свойства, а затем изменил версию развертывания с 2019 на 2012. На самом деле, я получаю это подтверждение:
2- Я прошел через XML и убедился, что такой вещи, как версия 8, не существует, и она есть только в версии 6 3- Я снова воссоздал все это с помощью Visual Studio, но на этот раз я начал с целевого развертывания, установленного как 2012.
Пожалуйста, помогите. Спасибо
Комментарии:
1. Вы уверены, что развернули пакет как пакет 2012? Изменение настроек проекта после развертывания, а не повторное развертывание, не устранит проблему
2. @Larnu Это файловая модель развертывания, поэтому простое удаление старого файла и замена его новым устраняет проблему. Так что здесь дело не в этом.
3. Почему бы не использовать SSISDB? Это значительно лучше, чем метод развертывания файловой системы по многим причинам. И если вы используете метод развертывания файловой системы, вам необходимо убедиться, что вы перестроили файл после изменения настроек проекта.
4. При запуске пакета можете ли вы добавить
/rep eiw
флаг и удалить первые две строки — просто чтобы убедиться, что запускается движок 2012? Что-то в этом родеMicrosoft (R) SQL Server Execute Package Utility Version 14.0.3335.7 for 32-bit
5. @billinkc спасибо за ваш ответ. Да, запускается движок 2012 (его запускает SQL Agent SQL Server 2012)
Ответ №1:
Я подумал, что отвечу на случай, если кто-то еще испытывает трудности: проблема связана с фундаментальным недостатком дизайна в VS (глупо, как они его разработали, не учитывая это). По сути, я использовал типы соединений (драйверы), которые не поддерживаются в более ранних версиях. Типы соединений редко получают обновления версий (скажем, например, SQLN11 против 10). Все, что вы получаете, когда получаете целевой сервер, — это другую схему XML, она не изменяет тип соединения на версию, дружественную к SQL 2012.
Я изменил типы соединений вручную, воссоздав весь пакет с помощью VS 2012. Это сработало. Но если у вас есть более ранние версии типов соединений, вам не обязательно этого делать, просто выберите более ранние, если это позволяет.