我正在设计一个SSIS包,它将数据从一个数据库导入到另一个数据库。实际上,我需要将数据从多个数据源导入到一个目标数据库。我所知道的一种方法是对所有数据源(连接字符串)使用包配置,并运行同一包的多个实例。但是我想要这样的东西,我应该提供尽可能多的连接字符串,因为我需要在我的配置文件中的时间点,我的包应该连接到每个数据库读取数据源连接字符串从配置和导入到我的目标表。
这有可能吗?
如果你的数据流任务对每个数据源都是相同的(例如,从每个数据源使用相同的表),你可以这样做:
- 创建一个对象变量,比如ConnStrList。这将保存连接字符串列表。
- 在脚本任务中,循环遍历配置文件并将每个连接字符串添加到ConnStrList中。添加一个ForEach循环容器,将其数据源设置为ConnStrList。创建一个字符串变量,比如ConnStr。这将保存一个单独的连接字符串。设置constr作为foreach循环的迭代变量。 在ForEach循环容器中添加数据流任务。
- 为OLEDB源创建OLEDB连接管理器。转到属性->表达式,为ConnectionString分配变量ConnStr。
如果DFT对于每个场景都是不同的,那么您可能希望为每个源具有单独的数据流。
请让我知道这是否回答了你的问题,或者如果我得到了错误的场景。