如何将父子SSIS包上传到服务器

时间:2014-02-17 06:34:53

标签: deployment ssis bids

大家好,我对SSIS很新。我有一些其他人开发的SSIS包这个包从平面文件读取数据并在映射后存储到数据库。

流速: 1)第一个包从平面文件中提取记录并存储在表中。 2)然后使用Execute包任务调用子包。 3)然后子包进行一些计算并更新数据库表。

SSIS正在使用Environment变量来获取数据库信息。

每件事情都运转正常,但现在我想把这个软件包部署到我客户的服务器上。

问:我是否需要从bin文件夹中复制和粘贴文件并粘贴到客户端计算机上? 我尝试过:我从bin文件夹中复制文件并放在我的本地计算机上。然后我在MSSQL中创建一个作业并运行该作业。套餐运行完美。但后来我改变了我的项目的位置,问题开始停止工作。 问题:错误说子包的位置不可用(因为我改变了我的项目文件的位置)

enter image description here

请建议做什么。

1 个答案:

答案 0 :(得分:0)

我将在这里做几个假设,所以如果我有任何错误请纠正我。

我猜测的问题是,在连接管理器中的Package.dtsx上,它当前链接到项目文件夹中的包位置。在这种情况下,您希望将其更改为其他位置,但连接管理器中的包仍指向项目位置。

如果我是你,我会做以下事情:

创建一个字符串变量

  • PackageFolderPath - C:\CurrentPackagePath\DBPackage.dtsx

现在您要做的是转到连接管理器中的包,并在属性下为ConnectionString添加一个表达式,其中包含以下内容:“@[User::PackageFolderPath]如果您评估表达式,它应该为您提供设置的位置你的变量。

但请注意,如果您希望在开发系统上使用它,请将软件包设置为项目位置。

PackageEvaluation

现在,一旦进行了这些设置,将文件复制到新服务器上并在SQL代理作业下转到Set Values选项卡,在此处您要添加以下内容:

\Package.Variables[User::PackageFolderPath].Properties[Value]

在您想要放置包裹的任何地方的值下

SQLAgentJobSetValues

现在应该在程序包运行时拾取程序包的新位置。

更好的方法是使用部署实用程序并在程序包上使用XML配置变量。但是这种方式应该有效。