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



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

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

对于每个连接字符串,我需要构建一个简单的SQL语句,该语句对于除硬编码年份之外的每个数据库都是相同的。因此sql是:从表中选择*,'2012'

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

我正在使用SSIS 2008。根据我所看到的,我猜我可以使用foreach循环,其中枚举器设置为ADO枚举器(尽管我不介意在那里进行确认),但我如何从同一个表中提取年份,并将其放入数据流任务中的sql查询中?

谢谢你的帮助!Kary

您可以执行以下步骤:

  1. 创建foreach循环,将连接字符串和年份值转换为变量
  2. 创建一个连接管理器,并使用表达式将连接字符串属性设置为连接字符串变量
  3. 使用一个表达式创建另一个变量,该表达式使用年份变量(动态SQL命令字符串)创建SQL命令
  4. 使用execute SQL任务在foreach中执行此任务

这里有一个链接,指向一个博客,介绍如何在Execute SQL Task中映射参数,这应该很有帮助。http://www.rafael-salas.com/2007/11/ssis-mapping-parameter-inside-of.html

最新更新