SQL表中的SSIS动态连接字符串

时间:2012-02-01 15:07:47

标签: ssis connection-string enumeration

我必须连接到许多具有连接字符串的Foxpro数据库: 数据源= \\所有用户\\ DB0009 \ db1.dbc;用户ID = xxx;密码= yyy;提供商= VFPOLEDB.1;持久安全信息=真;

其中文件夹DB0009可以是0000到0100之间的任何整数,db1.dbc可以是每个文件夹的db1.dbc或db2.dbc。

对于每个连接字符串,我需要构建一个简单的SQL语句,除了硬编码年份之外,每个数据库都是相同的。所以sql是:select *,'2012'来自表

我希望能够在sql表中存储每个连接字符串的连接字符串和年份,并且可以在运行时查找。

我正在使用SSIS 2008.我猜测基于我所看到的我可以使用foreach循环与枚举器设置为ADO枚举器(虽然我不介意确认那里),但我怎么能从同一个表中抽出年份并将其放入我在数据流任务中的sql查询中?

感谢您的帮助! 卡里

1 个答案:

答案 0 :(得分:1)

您可以执行以下步骤:

  1. 创建foreach循环以将连接字符串和年份值转换为变量。
  2. 创建一个连接管理器,并使用表达式将连接字符串属性设置为连接字符串变量。
  3. 使用表达式创建另一个变量,该表达式使用年份变量(动态SQL命令字符串)创建SQL命令。
  4. 使用执行SQL任务在您的foreach中执行此操作。
  5. 这是一个关于在Execute SQL Task中映射参数的博客的链接,应该会有所帮助。 http://www.rafael-salas.com/2007/11/ssis-mapping-parameter-inside-of.html