csv - SQL 2012 FileTable中存储的150MB CSV文件-如何查询要插入表中的数据

标签 csv filestream bulk sql-server-2012 filetable

我有一个带有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/

相关文章:

c# - 上传文件 : This operation is not supported in the WCF Test Client Because it uses type ClientFileInfo

mysql - 使用 Sequelize 从文件插入 Node.js 数据库

Silverlight 4.0 文件流

Java 扫描仪问题,Notecard 类

c# - 读取被另一个应用程序锁定的文本文件的最简单方法

java - 使用 Java 和 Ektorp 在 CouchDB 中进行批量更新

linux - 如何对子文件夹中的所有图像使用 ImageMagick 转换命令

C# - Cosmos DB 批量更新插入

java - 将 CSV 导入 Apache Ignite

matlab - MATLAB 中的文本扫描 : read NULL value as NaN