我有一个带有Persons表的简单数据库
UserId, Name,DOB
该表包含750,000行(人)。
我收到一个可能包含1000万行的CSV文件
UserId, Address1, Address2, Address3, TownCity, Region, Country,
Telephone1, Telephone2, Telephone3
用户当前和以前的联系方式
该文件中包含
usersId
,因此我可以将联系人详细信息与用户匹配。人与联系人详细信息之间存在一对多关系
我的最终目标是查询以选择
UserId, Name, DOB, Address1, Address2......
等目前,我使用.net打开csv文件并逐行读取并将每个记录分别写入SQL Server(可能有1000万个sql插入)-这很慢,所以我正在寻找其他这样做的方法。
我正在尝试使用SQL 2012 FileTable / Stream-因此我在FileTable中存储了csv文件,并且可以这样查询
SELECT [file_stream], [name], [path_locator], [parent_path_locator],
[file_type], [cached_file_size], [creation_time]
FROM [MYDB_FileTable].[dbo].[AddressFileTable]
有人知道我是否可以查询FileStream和批量插入或以其他任何方式处理核心CSV数据吗?
我看过
DECLARE @csv varchar(max)
SELECT @csv = convert(varchar(max), [file_stream]) FROM PKIFileTable
但是由于文件大小,这不起作用
欢迎任何建议。
最佳答案
您可以将SSIS用于该任务。完成所需的内容应该非常简单。
什么慢?
为什么我以前的答案被删除了?这里发生了什么?
我的答案基于最后一个子句:“还有其他处理核心csv数据的方式吗?”
关于csv - SQL 2012 FileTable中存储的150MB CSV文件-如何查询要插入表中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10836694/