SSIS脚本任务错误:“找到需要迁移的SQL Server Integration Services 2012脚本任务”

时间:2016-04-12 18:35:36

标签: ssis ssis-2012

根据Microsoft documentation on DTEXEC for executing SSIS packages

  

使用SQL附带的dtexec实用程序的版本时   Server 2012 Integration Services(SSIS)运行SQL Server 2005   Integration Services(SSIS)或SQL Server 2008 Integration Services   (SSIS)包,Integration Services临时升级包   到SQL Server 2012 Integration Services(SSIS)。

运行SSIS包时是否有禁用DTEXEC实用程序这一方面的功能?

我提出这个问题的原因是我有一个脚本任务来重命名SSIS包中的一些文件。这在我的本地计算机和同事本地计算机上工作正常,但在将此SSIS包部署到安装了SQL Server 2012的Windows 2012服务器之后,我收到一条错误消息。我真的很困惑,因为我在SQL Server 2012数据工具中编写了这个包,所以这个任务根本不需要升级/迁移,这就是错误抱怨...

  

警告:2016-04-06 11:29:58.14
      代码:0x00000000
      来源:DataMergeScriptTask
      描述:找到需要迁移的SQL Server Integration Services 2012脚本任务“my_Script_task”!

     

结束警告

     

错误:2016-04-06 11:30:03.02
      代码:0x00000001
      来源:DataMergeScriptTask
      描述:调用目标抛出了异常。

     

结束错误

2 个答案:

答案 0 :(得分:1)

不幸的是我们没有找到脚本任务没有转换到2012的解决方案,因为这些包都是在Data Tools 2012中编写的,打开/重新启动任务似乎并没有真正升级脚本任务的方式在服务器上解决它。

我的解决方案是使用C#脚本并将其转换为独立的.exe,其中包含一些命令行参数,以传递我们的不同参数,并使用默认值来匹配当前环境。然后我将其设置为由Windows任务调度程序作业调用的批处理脚本执行。

我希望找到一个真正的解决方案,以便更大的包中的脚本任务仍然是桃子,但这可能需要更多的时间或重新安装数据工具...拥有多个版本的SQL Server数据工具/我的工作站上的BIDS可能是这种悲伤的原因。更多测试来了!

答案 1 :(得分:0)

只需更新程序包中的TargetServerVersion以匹配您计划部署到的服务器版本。

确保您拥有项目的副本,以防它没有顺利进行。然后右键单击项目名称,选择属性,然后深入查看配置属性 - >一般并更新TargetServerVersion。 enter image description here 然后重建和部署。当项目构建时,它现在应该是服务器期望的格式,因此它不会尝试在引用可能不相同的服务器上重建脚本代码。