【问题标题】:How do I deploy a change to connection manager properties in a previously deployed SSIS Package?如何在以前部署的 SSIS 包中部署对连接管理器属性的更改?
【发布时间】:2018-08-15 22:12:49
【问题描述】:

我有一个业务逻辑更改,增加了输出到平面文件的列的宽度。

在 SSIS 项目中,我进行了必要的更改,最重要的是平面文件连接管理器/高级:输出列宽(从 10 增加到 14)。

我将包从 Visual Studio 部署到集成服务目录。为此,我在解决方案资源管理器中右键单击包并选择部署。值得一提的是,我还重新构建了该项目。

在 Visual Studio 中:

文件按预期输出。没有错误也没有警告。

部署中:

由于截断,包引发错误——比如连接管理器未更新。

我不知道对连接管理器属性的更改不会成为部署的一部分。我通过对连接进行另一项更改来测试我的这一新知识。对于测试:我将 Text Qualifier 属性从更改为双引号。然后我再次部署包,并在集成服务目录中单击配置包/连接管理器,正如我所怀疑的,Text Qualifier 属性仍然与部署包中的相同。

如何更改连接管理器并部署它?

【问题讨论】:

    标签: sql-server visual-studio ssis business-intelligence


    【解决方案1】:

    在 SSIS 中有两种可能的连接管理器范围:它们可以在包级别或项目级别进行配置。如果您在项目级别定义了有问题的连接管理器(作为指示器,您将在设计窗口的连接管理器窗格中的连接管理器名称后面看到“(项目)”),它不会在目录中更新仅部署单个软件包时。您必须部署整个项目才能在服务器上更新连接管理器。如果您不希望这样做,您仍然可以通过右键单击更改连接管理器范围,使其成为包级连接管理器。然后,您可以部署该单个包。但是,当然,这不会影响也使用该连接管理器的其他已部署包,它们仍将使用“旧”版本。但我认为您没有在其他包中使用该连接管理器,否则您不会想到在部署该特殊包时部署更新的连接管理器。在未来的项目中,从一开始就在适当的级别定义连接管理器。

    【讨论】:

    • 感谢您的回答。不幸的是,我已经在使用包级连接。这是连接管理器的 PackagePath 属性的值:“\Package.Connections[DestinationConnectionFlatFile]”
    • @ChrisAdragna 这很奇怪......在经常更改连接管理器之后,我正在将单个包重新部署到目录中的项目中,并且从未遇到过这样的问题。所以我不认为这是默认行为。您是否尝试将 SSDT 更新到最新版本?
    • @WolfangKais 我正在使用带有 SSDT 15.6.0 的 Visual Studio 2017(此外,我已经安装了最新版本,但它不适用于 VS2017——修复起来并不有趣)。这与我部署使用共享数据源的 SSRS 报告时的行为相同。如果已部署环境中已存在共享数据源,则它不会上传共享数据源的副本。我有一个临时修复。我重命名了包并重新部署了它(它获得了新的 conn mgr 属性)。仍然想知道更好的解决方案是什么。 :)
    • @ChrisAdragna 这是我在使用 project 级连接时所期望的行为。无论如何,很高兴您找到了解决方案。 :)
    • 难得还能找到 SSIS 专家先生。这非常有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多