我想使用SSIS导入大量文件,并将每个文件存储在一个单独的表中,使用它们的文件名作为表名。
我知道我必须使用For Each Loop Container但我仍然坚持将文件名变量传递给create table语句。
我确信我不能成为唯一一个尝试这样做的人,但我找不到任何好的例子。
答案 0 :(得分:0)
来自链接: 如果您使用For Each循环,则应该能够添加执行SQL任务来创建表。您需要在执行SQL任务的SqlStatement属性上使用表达式来动态生成CREATE TABLE语法(“CREATE TABLE”+ @ User :: YourFileNameVar ...)。
在数据流中,更改OLE DB目标以从变量中获取表名,并使用与上面相同的变量。您可能还需要在数据流上将DelayValidation属性设置为TRUE。
答案 1 :(得分:0)
我假设您正在使用ExecuteSql任务。如果是这样,实现此目的的一种方法是在任务中使用Ado.Net连接。您需要在组件中映射文件名变量,之后您可以在动态SQL中使用任务内部的变量来创建表。