SSIS Insert values from dynamically created table into table

时间:2018-12-03 13:16:46

标签: sql-server ssis

I'm using a SSIS script task to dynamically import and create staging tables on the fly from csvs as there are so many (30+.)

For example, a table in SQL server will be created called 'Customer_03122018_1305' based on the name of the csv file. How do I then insert into the actual 'real' 'Customer' table?

Please note -there are other tables - e.g. 'OrderHead_03122018_1310' that will need to go into a 'OrderHead' table. Likewise for 'OrderLines_03122018_1405' etc.

I know how to perform the SQL insert, but the staging tables will be constantly changing based on csv date timestamp. I'm guessing this will be a script task?

I'm think of using a control table when I originally import the csv's and then lookup the real table name?

Any help would be appreciated.

Thanks.

1 个答案:

答案 0 :(得分:0)

您可以按照以下过程,通过使用如下所述的FOR循环将所有临时表动态加载到主客户表中,

  1. 在动态创建登台表的同时,将所有登台表的名称存储在一个由逗号分隔的单独的变量中。
  2. 还存储在另一个变量中创建的登台表的数量。
  3. 使用FOR循环容器,并根据创建的登台表的数量循环容器。
  4. 在FOR循环中,使用脚本任务并将第一个登台表名称的值提取到单独的变量中。
  5. 在脚本任务之后,在FOR循环容器内,添加一个DataFlow任务,并在其中,使用步骤4中用于存储第一个登台表名称的变量来动态构建OLEDB Source任务。
  6. 将登台表的结果加载到“实际”表中。
  7. 从步骤1中创建的变量中删除登台表名称(其中包含所有用逗号分隔的登台表名称)。