【问题标题】:SSIS executing wrong (old) package versionSSIS 执行错误(旧)包版本
【发布时间】:2014-01-28 16:43:53
【问题描述】:

我有一个 SQL Server 代理作业,通过 CmdExec 和 32 位 DTExec 执行文件系统部署的 SSIS 包。但是,最新版本的包版本未执行。

我所做的更改是在脚本任务中进行的。我确保在关闭之前在 VSTA 编辑器中构建,等等。

我已通过将预期版本放入命令行参数来验证这是问题所在,因此任务失败:/VERIFYVERSIONID "\"{1F870663-1898-4A30-B4A8-226817D1755F}\""

是否有可以清除的缓存?

【问题讨论】:

    标签: ssis sql-server-2008-r2 sql-server-2012


    【解决方案1】:

    一种方法是将 SQL 作业的执行类型更改为操作系统 (CMDEXE),并提供 dtexec 文件的路径以供 SSIS 用作可执行文件。

    C:\Program Files\Microsoft SQL Server\110\DTS\Binn\dtexec.exe /FILE "c:\path\to\my\ssis\package\myssispackage.dtsx" /CHECKPOINTING OFF /REPORTING E

    通过专门调用 dtsx,您可以指向 32 位或 64 位版本。如果您在执行服务器上安装了 SSIS (dtexec),您还可以恢复到以前版本的 SSIS。

    我最近将我的一些包升级到 SSIS 2012,并且必须使用新版本才能让 dtexec 执行这些包。这解决了我的问题。希望对您有所帮助。

    【讨论】:

    • 我正在使用 CmdExec 执行。问题不是 SSIS 版本,而是包本身的版本。
    • 包版本,意思是 32 位还是 64 位?
    • 啊,不。当您右键单击设计画布上的空白区域并选择属性时,包的VersionGUID。在命令行中,您提供您希望 DTExec 运行的版本(如果不匹配则失败),例如 /VERIFYVERSIONID "\"{1F870663-1898-4A30-B4A8-226817D1755F}\""
    • 好的,现在我和你在一起。那么当你通过作业执行和通过命令行执行时,你得到相同的结果吗?
    • 我不是,不。手动执行、调试和命令行都按预期工作。但是..那是因为在作业中配置的包的位置发生了变化。 (见我上面的回答)
    【解决方案2】:

    这里没什么可看的,继续前进..

    我正在托管由我的开发团队共享的多个环境的服务器上进行新的子包测试,并且我们正在改组。有问题的工作是几个相同的工作之一,并且包的路径已更改。

    这是一个“主”包,它根据从队列中读取的值动态执行子包,这就是为什么我没有想到检查路径的原因。

    新手监督。

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 2015-07-08
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多