xp_dirtree从一个表中的一个文件夹加载所有csv文件

时间:2019-05-08 08:04:49

标签: sql-server ssms

我在一个文件夹中几乎有100个csv文件,具有相同的标题和标题格式。我需要将这些CSV文件中的所有数据加载到SQL Server的一个表中。我正在使用SSMS加载文件。我了解权限限制,并已解决。

我什至在使用xp_dirtree列出该文件夹中的所有文件,但现在我需要将所有这些列出的文件中的数据加载到预定义的表中(表A,其中包含标头)。请帮助。

谢谢

-获取文件列表的代码-

if object_id('tempdb..#directory','U') is not null
begin
    drop table #directory;
end;
    create table #directory (
 [subdirectory] varchar(512) 
,[depth] int
,[file] int
);
insert into #directory ([subdirectory],[depth],[file])
EXEC master.dbo.xp_DirTree'C:\Users\CSV temp',0,1;

select [subdirectory],[depth] from #directory
where [file] = 1

1 个答案:

答案 0 :(得分:0)

理论上,您可以使用BULK INSERT从SQL Server内部加载文件,而无需使用外部工具。但是,仅SQL Server 2017和更高版本支持CSV格式。

如果您的SQL Server版本不支持它,则(几乎)唯一的选择是SSIS程序包。