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
Sql server 2008 如何使用不同的配置多次运行同一SSIS包_Sql Server 2008_Ssis - Fatal编程技术网

Sql server 2008 如何使用不同的配置多次运行同一SSIS包

Sql server 2008 如何使用不同的配置多次运行同一SSIS包,sql-server-2008,ssis,Sql Server 2008,Ssis,由于这些令人敬畏的特性,在SQLServer2008中有什么方法吗 1) 使用不同配置多次运行同一SSIS包 2) 同时在投标测试时仍在设计时启用配置 基本上在2005年,我可以创建SSIS包,在BIDS中启用配置以进行测试,测试后将包部署到服务器,并使用SQL agent和3种不同配置运行3次 我如何在2008年做到这一点,否则我将不得不在部署前禁用BIDS中的配置?问题是,如果开发人员忘记在投标中禁用它们,那么将始终使用设计时配置,而不是指定的配置。为什么不能运行包3次 只需使用/confi

由于这些令人敬畏的特性,在SQLServer2008中有什么方法吗

1) 使用不同配置多次运行同一SSIS包

2) 同时在投标测试时仍在设计时启用配置

基本上在2005年,我可以创建SSIS包,在BIDS中启用配置以进行测试,测试后将包部署到服务器,并使用SQL agent和3种不同配置运行3次


我如何在2008年做到这一点,否则我将不得不在部署前禁用BIDS中的配置?问题是,如果开发人员忘记在投标中禁用它们,那么将始终使用设计时配置,而不是指定的配置。

为什么不能运行包3次

只需使用/config运行dtexec并指定要从中提取值的配置文件

或者,您可以创建一个包含3个步骤的sql作业,并在每个步骤上运行同一个包,在“配置”选项卡上通知不同的配置文件

我真的看不出有什么问题。“包”和“配置文件”是两个独立的东西。在BIDS内部,如果您禁用配置并运行包,它当然不会读取任何配置文件,但如果启用,它将从配置(文件或服务器或其他)读取值,并使用它们,即使您在包上设置了不同的值

那么,为什么开发人员不能启用配置并在配置文件中设置所需的值呢

编辑:

我想你理解错了。从您发布的页面:

1-实用程序首先应用设计时配置

  • 也就是说,读取配置文件上的配置
2-然后该实用程序将应用您在上指定的运行时选项 启动实用程序时的命令行

-这意味着,使用dtexec上的/set选项设置变量值之类的事情

3-最后,实用程序重新加载并重新应用设计时间 配置

也就是说,重新加载配置文件上的配置

这就是为什么在SQLServer2008中,您会在多个地方看到,您不能使用/Set选项来覆盖同样由配置设置的值

这并不意味着你不能,这意味着配置文件上的值将优先于命令行设置的任何值


不用担心,在任何时候,BIDS中设置的值都不会覆盖您在配置文件中设置的值。

是的,如果您在BIDS中禁用它们,它会起作用-这是您需要记住的唯一问题。若你们忘了,在SQL代理作业中指定的配置文件将永远不会覆盖SSIS包中的值——这是我在2005年到2008年的问题中提到的行为改变。我想我做对了,特别是因为我实际测试了这个:)让我在示例中解释一下。我们有aaa.dtsx包。当您在BIDS中打开它时,将启用配置,并使用名为dev.dtsx config的配置文件来设置连接和一些变量。然后我们将其部署到生产SQL server,并使用dtexec运行三次—使用config prod_a.dtconfig、prod_b和prod_c—每次包都将使用不同的连接和设置。虽然它在2005年工作得很好,但在2008年却不起作用-我们的ssis包总是从config dev.dtsx中选取值。唯一的情况是,当传递给dtexec的配置中的值没有被设计时配置覆盖时,它们没有被设计时配置设置。