【问题标题】:xp_dirtree to load all the csv files from one folder in one tablexp_dirtree 从一张表的一个文件夹中加载所有 csv 文件
【发布时间】:2019-05-08 17:54:00
【问题描述】:

我在一个文件夹中有近 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

【问题讨论】:

  • 使用 SSIS:创建一个数据流任务,从平面文件源拉到 OLE DB 目标。

标签: sql-server ssms


【解决方案1】:

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

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

【讨论】:

  • 如何使用批量插入在一张表中加载多个文件?
  • @Rahul,一一循环?查看我提供的链接中的“示例”部分。
猜你喜欢
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 2020-04-28
  • 2019-10-06
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
相关资源
最近更新 更多