我试着在谷歌上搜索,但没有得到一些信息。
感谢期待!
发布于 2013-03-29 10:05:12
我认为一点背景将有助于理解参数的概念。在这里,我将在与变量的比较中解释它。为了充分掌握参数概念,您可能需要查找新的项目部署模型、环境、构建配置。
变量的使用
在2012年之前的SSIS中,如果我们需要在执行之前将任何外部值传递给包(就像我们一直做的那样),我通常使用配置文件(或其他几种方式)。假设我们有一个文件服务器,它将用于访问一个共享文件,我将使用变量来存储服务器名,并将这个变量公开给配置文件。如果更改了实际的文件服务器(dev env以测试env等),我们只需要更改配置文件中该变量的值,而SSIS包则保持不变。
一切看起来都很好,但有几件事我总是问自己为什么,却不知道为什么:
新的项目部署模型
SSIS 2012引入了一种新的部署模型,即项目部署模型。简而言之,此模型将SSIS项目作为一个单元部署到Server目录中,而包配置在此模型中不可用(它在引用为包部署模型的旧模型中可用,而SSIS 2012则可以选择2012年默认使用的新模型)。
如果我们希望将一些值传递到SSIS包中,则必须通过Parameters传递它们,并在SSMS中使用SSIS目录来配置参数的值(仅为值,其他我们无法配置的)。参数和连接管理器在可以配置的SSIS目录中自动公开,在中无法配置以前通过配置文件提供的任何其他东西(世界要干净得多)。在SSIS包中,在构建表达式方面,参数可以与变量使用相同的方式。然而,不能在SSIS包中修改参数,这是非常有意义的。(为什么我们需要更改从外部传入的值?如果必须的话,将值传递给一个变量,并在那里进行更改。)
总结
参数仅在中可用,并且它提供了在此模型中将值从外部传递到SSIS包的唯一机制。如果我们认为SSIS是一个OO类,那么参数可以被看作是公共属性,外部人员可以访问它并为其赋值(类本身可以/将使用它,但不能修改它)。当变量可以被看作是内部使用的私有变量时,外部世界就不需要知道任何关于它的信息。
对于旧的包部署模型,没有参数,世界仍然是一样的。
发布于 2016-07-19 20:49:37
简而言之,可以在运行时更改变量的值,但参数不能更改。参数可以帮助您完成项目部署,您可以在SSISDB目录中设置它,而变量不能。
发布于 2018-02-21 11:04:56
变量和参数类似于java中的变量和参数,我们以参数的形式传递/通过某些值给某些方法/任务,并且在特定的任务中使用它们,我们不能更改这些值,因为它们是该方法的外部事物。在SSIS中,Project参数用于动态地在包中设置某些变量或连接。将as变量限制在包级别的内部。
https://stackoverflow.com/questions/15337431
复制相似问题