SQL Server Integration Services(SSIS) 在2012版本引入了Environment Variables这个新特性。它允许我们为一个环境创建出一套变量用于为项目内的包在执行时进行参数赋值,比如我们可以为PROD环境,SIT环境,UAT环境和DEV环境创建出不同的变量。这点对于像connection string这样的东西是很有用处的。看似是个不错的功能,其实仔细研究下来还是觉得有些失望。

首先第一点,既然常量/显示赋值(literal value)也是可以做到的事情,那你Environment Variables的优势在哪?

关于这点,首先我想它的优势必须在某些条件下才可以体现出来,比如一台服务器承担了多重角色,比如既是SIT环境又是DEV环境。这个时候用环境变量来切换省时省力。其次,我觉得它的另一个优势只有在大型项目下才可以体现出来,比如说DW项目拥有许多台服务器,有些服务器可能会根据需要承担起不同环境下的服务器角色,比如有时作为SIT服务器,有时作为DEV服务器,这个时候用Environment Variables切换也是比较省时省力。

但是它的劣势也很致命,那就如果你用Agent Job或者调用存储过程来运行SSIS包的话,你会发现即便你在项目级别明明已经配置了Environment Variables,可是你在用Agent Job执行包或者调用存储过程来运行包的时候它还是要求你去指明Environment或者显示赋值项目参数。如果是用存储过程还好,我们至少可以指定reference_id这个参数来告诉SSIS用哪个Environment,但是Agent Job就惨了,难不成我要每次都改Agent Job配置。这样不是让人很奔溃吗?我就不明白,我明明都在项目级别配置了某个Environment,你还要我在执行包的时候再指定一次,为什么你不能聪明点呢?这点其实是说得通的啊,就像默认选项的道理。

那话说回来,我觉得小型的项目或者说不同环境(DEV/PROD/SIT)拥有不同的服务器,那么还不如用常量。起码用常量的话我们不必每次都去改。SSIS至少每次是知道这些值是默认值。

参考:

Create and Map a Server Environment

Parameterizing Connections and Values at Runtime Using SSIS Environment Variables

SSIS ->> Environment Variables的更多相关文章

  1. CVE: 2014-6271、CVE: 2014-7169 Bash Specially-crafted Environment Variables Code Injection Vulnerability Analysis

    目录 . 漏洞的起因 . 漏洞原理分析 . 漏洞的影响范围 . 漏洞的利用场景 . 漏洞的POC.测试方法 . 漏洞的修复Patch情况 . 如何避免此类漏洞继续出现 1. 漏洞的起因 为了理解这个漏 ...

  2. Debian Environment Variables

    原文:EnvironmentVariables General Environment variables are named strings available to all application ...

  3. How to keep Environment Variables when Using SUDO

    The trick is to add environment variables to sudoers file via sudo visudo command and add these line ...

  4. Environment Variables

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx Every process has an ...

  5. [Whole Web, Nods.js, PM2] Passing environment variables to node.js using pm2

    learn how to pass environment variables to your node.js app using the pm2 config file. This is usefu ...

  6. List environment variables from Command Prompt

    Request: List the environment variables from Command Promt To list one varibales , the syntax is lik ...

  7. [NPM] Execute npx commands with $npm_ Environment Variables

    We will incorporate npm specific environment variables when executing various npx commands. In our e ...

  8. How to set JAVA environment variables in Linux or CentOS

    How to set JAVA environment variables JAVA_HOME and PATH in Linux After installing new java (jdk or ...

  9. svn: None of the environment variables SVN_EDITOR...问题解决

    转:http://blog.163.com/lgh_2002/blog/static/44017526201046111856208/ 问题1: svn: Could not use external ...

随机推荐

  1. 解决bootstrap中显示不了本地字体图标

    正在用bootstrap写一个登录界面时,准备用一个图标 但实际效果是: 可以看到图标并没有显示出来,百度一下,发现有可能是路径问题. 自己的目录关系和引用方式如下分别为: Ctrl+左键进入glyp ...

  2. 使用not in的子查询

    operand comparison_operator [NOT] in (subquery) =ANY运算符与IN等效 !=ALL或<>ALL运算符与NOT IN 等效 如果子查询返回任 ...

  3. Express4.10.2开发框架中默认app.js的代码注释

    //通过require()加载了express.path等模块var express = require('express');var path = require('path');var favic ...

  4. 以cmd命令行方式执行php文件时,传递参数

    1. php自带的两个参数$argc, $argv: 1.1. $argv : (后面的v是variables的意思),传递进来的参数会以数组的方式保持在这个变量里 1.2. $argc : (后面的 ...

  5. Javascript 中 atob/btoa

    解决 Javascript 中 atob 方法解码中文字符乱码问题 由于一些网络通讯协议的限制,你必须使用 window.btoa() 方法对原数据进行编码后,才能进行发送.接收方使用相当于 wind ...

  6. Java动态代理的理解

    代码内容: https://github.com/cjy513203427/Java_Advanced_Knowledge/tree/master/src/com/advance/dynamic_pr ...

  7. 资料汇总--Java

    01.从零开始学springBoot 02.java资源大全中文版 03.谷歌 中国

  8. sql语句将身份证号数字转换成特殊字符

    SELECT Tname , STUFF(Idcard,,,'*********') as Idcard,Completion from demo

  9. 远程桌面下启动MATLAB时的License Manager Error -103错误

    之前使用学校提供的正版lincense,是通过MATLAB 官网注册下载的MATLAB 2017a,远程登录可用打开.后来学校停止购买了,时间紧迫,网上下载了一个standalone的lincense ...

  10. css常用左右布局方案整理

     实际项目开发过程中我们经常会遇到页面div左右布局的需求:左侧 div 固定宽度,右侧 div 自适应宽度,填充满剩余页面,下面整理几种常用的方案  1 左侧 div 设置 float 属性为 le ...