SSIS Script Task Error: "Found SQL Server Integration Services 2012 Script Task that requires migration"
SSIS Script Task Error: "Found SQL Server Integration Services 2012 Script Task that requires migration"
根据 Microsoft documentation on DTEXEC for executing SSIS packages:
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).
当 运行 SSIS 包时,是否有禁用 DTEXEC 实用程序这一方面的功能?
我问这个问题的原因是我有一个脚本任务来重命名 SSIS 包中的一些文件。这在我的本地机器和同事的本地机器上工作得很好,但是在将这个 SSIS 包部署到我们的 windows 2012 服务器并安装了 SQL Server 2012 之后,我收到一条错误消息。我真的很困惑,因为我在 SQL Server 2012 Data Tools 中编写了这个包,所以这个任务根本不需要 upgraded/migrated,这就是错误所抱怨的...
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
很遗憾,我们还没有找到脚本任务未转换为 2012 的解决方案,因为这些包都是用 Data Tools 2012 编写的,opening/resaving任务似乎并没有真正升级脚本任务以在服务器上解决它的方式。
我的解决方案是采用 C# 脚本并将其转换为独立的 .exe,它具有一些命令行参数来传递我们不同的参数,并使用默认值来匹配我们当前的环境。然后我将其设置为由 windows 任务调度程序作业调用的批处理脚本执行。
我希望找到一个真正的解决办法,这样大包中的脚本任务仍然会很好,但这可能需要更多时间或重新安装数据工具...有多个版本的 SQL 我工作站上的服务器数据 tools/BIDS 可能是造成这种悲痛的原因。更多测试即将到来!
只需更新包中的 TargetServerVersion 以匹配您计划部署到的服务器版本。
确保您有项目的副本,以防项目进展不顺利。然后右键单击项目名称,选择属性,然后进入配置属性 -> 常规并更新 TargetServerVersion。
然后重建和部署。当项目构建时,它现在应该是您的服务器期望的格式,这样它就不会尝试在引用可能不同的服务器上重建脚本代码。
根据 Microsoft documentation on DTEXEC for executing SSIS packages:
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).
当 运行 SSIS 包时,是否有禁用 DTEXEC 实用程序这一方面的功能?
我问这个问题的原因是我有一个脚本任务来重命名 SSIS 包中的一些文件。这在我的本地机器和同事的本地机器上工作得很好,但是在将这个 SSIS 包部署到我们的 windows 2012 服务器并安装了 SQL Server 2012 之后,我收到一条错误消息。我真的很困惑,因为我在 SQL Server 2012 Data Tools 中编写了这个包,所以这个任务根本不需要 upgraded/migrated,这就是错误所抱怨的...
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
很遗憾,我们还没有找到脚本任务未转换为 2012 的解决方案,因为这些包都是用 Data Tools 2012 编写的,opening/resaving任务似乎并没有真正升级脚本任务以在服务器上解决它的方式。
我的解决方案是采用 C# 脚本并将其转换为独立的 .exe,它具有一些命令行参数来传递我们不同的参数,并使用默认值来匹配我们当前的环境。然后我将其设置为由 windows 任务调度程序作业调用的批处理脚本执行。
我希望找到一个真正的解决办法,这样大包中的脚本任务仍然会很好,但这可能需要更多时间或重新安装数据工具...有多个版本的 SQL 我工作站上的服务器数据 tools/BIDS 可能是造成这种悲痛的原因。更多测试即将到来!
只需更新包中的 TargetServerVersion 以匹配您计划部署到的服务器版本。
确保您有项目的副本,以防项目进展不顺利。然后右键单击项目名称,选择属性,然后进入配置属性 -> 常规并更新 TargetServerVersion。