SSIS基于文件名创建表

时间:2014-08-11 20:56:12

标签: sql-server ssis

我想使用SSIS导入大量文件,并将每个文件存储在一个单独的表中,使用它们的文件名作为表名。

我知道我必须使用For Each Loop Container但我仍然坚持将文件名变量传递给create table语句。

我确信我不能成为唯一一个尝试这样做的人,但我找不到任何好的例子。

2 个答案:

答案 0 :(得分:0)

http://social.msdn.microsoft.com/forums/sqlserver/en-US/456f2201-447c-41b3-bf27-b3ba47e6b737/dynamically-creating-sql-tables-in-ssis-foreachloop

来自链接: 如果您使用For Each循环,则应该能够添加执行SQL任务来创建表。您需要在执行SQL任务的SqlStatement属性上使用表达式来动态生成CREATE TABLE语法(“CREATE TABLE”+ @ User :: YourFileNameVar ...)。

在数据流中,更改OLE DB目标以从变量中获取表名,并使用与上面相同的变量。您可能还需要在数据流上将DelayValidation属性设置为TRUE。

答案 1 :(得分:0)

我假设您正在使用ExecuteSql任务。如果是这样,实现此目的的一种方法是在任务中使用Ado.Net连接。您需要在组件中映射文件名变量,之后您可以在动态SQL中使用任务内部的变量来创建表。