2016-04-12 2 views
1

Согласно Microsoft documentation on DTEXEC for executing SSIS packages:SSIS Script Task Error: "Found SQL Server Integration Services 2012 Задача сценария, который требует миграции"

When you use the version of the dtexec utility that comes with SQL Server 2012 Integration Services (SSIS) to run a SQL Server 2005 Integration Services (SSIS) or a SQL Server 2008 Integration Services (SSIS) package, Integration Services temporarily upgrades the package to SQL Server 2012 Integration Services (SSIS).

Есть ли функция, чтобы отключить этот аспект утилиты DTExec при выполнении пакетов служб SSIS?

Моей причиной этого вопроса является то, что у меня есть задача сценария для переименования некоторых файлов в пакете SSIS. Это очень хорошо работает на моей локальной машине и локальной машине сотрудников, но после развертывания этого пакета SSIS на нашем сервере Windows 2012 с установленным SQL Server 2012 я получаю сообщение об ошибке. Я очень смущен, потому что я написал этот пакет в SQL Server 2012 Инструментов Data поэтому эта задача не должна быть обновлена ​​/ мигрировала на все, что и жалуется ошибка о ...

Warning: 2016-04-06 11:29:58.14
Code: 0x00000000
Source: DataMergeScriptTask
Description: Found SQL Server Integration Services 2012 Script Task "my_Script_task" that requires migration!

End Warning

Error: 2016-04-06 11:30:03.02
Code: 0x00000001
Source: DataMergeScriptTask
Description: Exception has been thrown by the target of an invocation.

End Error

+1

AFAIK это поведение является встроенным и не может быть изменено. Именно поэтому люди испытывают боль в обновлении своих пакетов 2008 года до 2012 года. Я предполагаю, что ваша ошибка вызвана разными версиями «вырезанных C# или VB.net», которые используются в задаче Script. Вы пытались обновить пакет? Проблема с задачей может быть такой же простой, как требуется небольшая ссылка пространства имен. – SebTHU

+0

Забавно, что этот пакет был успешно преобразован с использованием инструментов данных SQL Server 2012 ... Я даже переписал все это в новом пакете с использованием инструментов данных sql server 2012 и получил тот же результат. Похоже, что SQL-серверные инструменты данных нарушены. –

+0

Похоже, мы сможем взять наш скрипт C# и преобразовать его в автономное консольное приложение/exe и поместить его на сервер именно так. Надеюсь, я смогу определить решение этой проблемы в контексте SSIS, хотя ... Очень неутешительно. –

ответ

1

К сожалению, мы не нашли решения для задачи Script Script, которая не конвертируется в 2012 году, поскольку все эти пакеты записаны в Data Tools 2012, и открытие/сохранение задачи не похоже на фактическое обновление задачи сценария таким образом, чтобы это разрешало сервер.

Мое решение заключалось в том, чтобы взять сценарий C# и превратить его в автономный .exe, который имеет некоторые аргументы командной строки, чтобы передавать наши разные параметры с установленными по умолчанию значениями, чтобы соответствовать нашей текущей среде. Затем я решил, что это будет выполняться с помощью скрипта Batch, вызванного заданием планировщика задач Windows.

Я надеюсь найти реальное решение для этого, чтобы задачи сценария в больших пакетах все еще были персиковыми, но это может занять больше времени или переустановить инструменты для передачи данных ... Имея несколько версий инструментов данных SQL Server/BIDS на моей рабочей станции может стать причиной этого горя. Еще больше испытаний!

0

Просто обновите TargetServerVersion в своем пакете в соответствии с версией сервера, которую вы планируете развернуть.

Убедитесь, что у вас есть копия вашего проекта, если она не проходит гладко. Затем щелкните правой кнопкой мыши имя проекта, выберите свойства, затем разверните «Свойства конфигурации» -> «Общие» и обновите TargetServerVersion. enter image description here Затем перестроить и развернуть. Когда проект строится, он должен теперь быть в том формате, который ожидает ваш сервер, поэтому он не будет пытаться перестроить код сценария на сервере, где ссылки могут быть не одинаковыми.