Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了在SSIS中创建父包变量,还有其他选择吗?_Ssis - Fatal编程技术网

除了在SSIS中创建父包变量,还有其他选择吗?

除了在SSIS中创建父包变量,还有其他选择吗?,ssis,Ssis,我有三个SSIS解决方案,每个解决方案包含大约50个包。每个包都有一个主包,其中服务器名称是硬编码的,该变量由相应解决方案的子包调用。每个解决方案的主程序包由作业调用。当然,它是包部署模型。 这在2008年版本时运行良好,但最近在迁移到2017年后,子包无法从父包获取它应该获取的变量,因此作业失败。我已经为一个解决方案在每个包的每个变量中硬编码了服务器名称,并且成功了。但不可能对所有解决方案的所有包进行硬编码 那么我的问题是,我还有什么办法可以让它工作吗?转换为项目部署模型?或任何其他耗时较少的

我有三个SSIS解决方案,每个解决方案包含大约50个包。每个包都有一个主包,其中服务器名称是硬编码的,该变量由相应解决方案的子包调用。每个解决方案的主程序包由作业调用。当然,它是包部署模型。

这在2008年版本时运行良好,但最近在迁移到2017年后,子包无法从父包获取它应该获取的变量,因此作业失败。我已经为一个解决方案在每个包的每个变量中硬编码了服务器名称,并且成功了。但不可能对所有解决方案的所有包进行硬编码

那么我的问题是,我还有什么办法可以让它工作吗?转换为项目部署模型?或任何其他耗时较少的解决方案?

请记住,我刚才提到了一个这样的变量,但实际上也存在其他变量,它们也有同样的作用。这些变量的数量因解决方案而异,取决于它们的需要


提前感谢

您可以迁移到项目模型。这种方法的优点:

  • 从同一个项目中调用包是很简单的——您只需在项目中指定包名
  • 所有包都可以共享项目参数,这些参数是所有包中可用的只读变量。您可以在主程序包启动时设置项目参数,或将其配置为从中复制 与SSIS 2008包的配置相比,项目模式是一个很好的进步。唯一的缺点是执行包任务可以毫无困难地调用来自同一项目的包。从其他项目(不是调用包的项目)启动包并不是那么简单,您必须做一些技巧


    SSIS环境允许使用特定于您的环境的服务器名称、连接字符串等维护配置。例如,使用它维护Dev、QA和Prod环境设置的任务比使用旧的良好配置文件要容易得多。

    在转换到项目部署模型后,创建一个项目级连接管理器,然后删除所有继承连接字符串的逻辑,似乎最适合OP。然后SSIS环境使管理资源变得更加容易。@Ferdipux看起来项目模型就是我问题的答案。但是你能在你的回答中解释一下这句话吗?“唯一的缺点是,在包内,从外部项目(除了调用包的项目)开始包不是那么容易。”如果这是一个noob问题,很抱歉,但在我是一个新的软件开发人员之后,我就无能为力了MSBI@AlapanBag,更改了措辞以更好地描述它。简而言之,从其他项目调用包并不是那么简单。@Ferdipux非常感谢!这就解释了。@Ferdipux我在想,如果我将其更改为项目模型,只参数化所需的变量(例如服务器名称),并保持所有其他变量不变(从表中获取值),该怎么办。这是一个可行的选择吗?