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

存储在SQL 2012 FileTable中的150MB csv文件-如何查询要插入到表中的数据,csv,filestream,bulk,sql-server-2012,filetable,Csv,Filestream,Bulk,Sql Server 2012,Filetable,我有一个带有Persons表的简单数据库 UserId, Name,DOB 该表包含750000行(人) 我收到一个可能包含1000万行的CSV文件 UserId, Address1, Address2, Address3, TownCity, Region, Country, Telephone1, Telephone2, Telephone3 用户当前和以前的联系方式 此文件中有usersId,因此我可以将联系人详细信息与用户匹配 人员和联系人详细信息之间存在一对多关系 我的最终目标

我有一个带有Persons表的简单数据库

UserId, Name,DOB
该表包含750000行(人)

我收到一个可能包含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,因此我将csv文件存储在FileTable中,并可以进行查询

SELECT [file_stream], [name], [path_locator], [parent_path_locator],
       [file_type], [cached_file_size], [creation_time]  
FROM [MYDB_FileTable].[dbo].[AddressFileTable]
有人知道我是否可以查询FileStream和bulk insert或任何其他处理核心csv数据的方法吗

我看过

DECLARE @csv varchar(max)
SELECT @csv = convert(varchar(max), [file_stream])  FROM PKIFileTable
但由于文件大小,这不起作用


欢迎提出任何建议。

您可以使用SSIS完成该任务。完成你需要的事情应该相当简单

什么东西慢

为什么我以前的答案被删除了?这是怎么回事


我的答案是基于最后一条:“使用核心csv数据还有其他方法吗?”

谢谢Janus007-似乎有人指出了显而易见的问题-使用SSI。通常这是最简单的答案。 我正在使用SSIS成功地完成此操作


但我仍然想知道如何最好地查询存储在文件流中的CSV文件

另一个解决方案可能是在C#中开发CLR并用它处理文件流,使用这种方法,您仍然可以使用TSQL的优秀语言,并可以轻松地在C#中进行调试。

不知道您之前的答案被删除的原因。今天我将研究SSI以及我可以用它做些什么