zoukankan      html  css  js  c++  java
  • [转]SSIS Parameter和Variable的区别

     

    原文URL:http://stackoverflow.com/questions/15337431/ssis-variables-vs-parameters-ssis-denali

    I think a little bit background will be beneficial to understand the Parameter concept. Here I will explain it in the context of comparing with Variables. To fully grasp the Parameter concept, you might need to look up for the new Project Deployment Model, Environment, Build Configuration as well..

    Usage Of Variable

    With SSIS prior 2012, if we need to pass any external values to the package before the execution (as we all do all the time), I normally use configuration file (or a couple of other ways). Say we have a file server, which will be used to access a shared file, I will use variable to store the server name, and expose this variable to the configuration file. If the actual file server is changed (dev env to test env etc.), we just need the change the value of that variable in the configuration file and SSIS package remains intact.

    Everything looked good, but there are a couple of things that I always ask myself why and could not figure out why:

    1. 100% of the time when I am exposing variables to configuration file, I just expose the "Value" properties. Why does SSIS allow to expose all the other variable properties?

    2. Why does SSIS not have "private" variable? By "private" I mean when I chose the variables to configure, the "private" ones just did not get shown on the pick list. The SSIS package could have dozens of variables, for the internal value-holders, what's the point to expose them? Why I have to scroll all the way to find the only one I need to expose?

    New Project Deployment Model

    SSIS 2012 introduces a new deployment model, Project Deployment Model. For short, this model deploys SSIS project as a single unit to SQL Server SSIS catalog, and package configuration is NOT available in this model (it is available in the old model referenced as Package Deployment Model, with SSIS 2012 you can choose which one to use, 2012 default to the new model).

    If we want the pass some values into the SSIS packages, we have to pass them in via Parameters, and use SSIS catalog in SSMS to configure the value for the parameters(only the value, nothing else we can configure). Parameters and connection managers are exposed automatically in SSIS catalog which can be configured, nothing else previously available via configuration files can be configured in Project Deployment Model (The world is much cleaner). Inside SSIS package, parameters can be used in the same way as variables in terms of building up expressions. However, parameters can NOT be modified within the SSIS package, which makes perfect sense. (Why do we need to change a value which is passed in from external? If we have to, pass the value to an variable, and do the changes there..)

    Sum Up

    Parameter is only available in the Project Deployment Model, and it provides the only mechanism for passing values from external to SSIS packages in this model. If we think SSIS pacakge as an OO class, Parameters could be thought as public properties, which externals can access and assign value to it (the class itself can/will use it, but cannot modify it). Where Variables could be thought as private variables, which are used internally, external world does not need to know anything about it.

    For the old Package Deployment model, there is no Parameter, and the world remains the same.

  • 相关阅读:
    InstallShield 12 制作安装包
    php常用知识集锦
    Bootstrap是什么
    php实现简单的学生管理系统
    php实现邮箱激活功能
    php定界符<<<EOF讲解
    qq邮箱的SMTP服务器是什么
    mysqli一些常用方法及详解
    mysqli的简单工具包
    mysqli数据库操作简单实例
  • 原文地址:https://www.cnblogs.com/fuckcn/p/5392011.html
Copyright © 2011-2022 走看看