使用where子句将txt文件导入SQL Server

时间:2016-07-13 19:16:45

标签: sql-server import sql-server-2012 where-clause flat-file

我有一个6.00 GB的.txt文件。它是制表符分隔的文件,因此当我尝试将其加载到SQL Server时,列分隔符是制表符。

我需要将.txt文件加载到数据库中,但我不需要6.00 Gb文件中的所有行。我需要能够使用像

这样的条件
select * 
into <my table> 
where column5 in ('ab, 'cd')

但这是一个文本文件,无法将其加载到具有该条件的db中。

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:3)

您是否尝试过使用BULK INSERT命令?看看这个解决方案:

--Create temporary table
CREATE TABLE #BulkTemporary
(
  Id int,
  Value varchar(10)
)

--BULK INSERT has no WHERE clause
BULK INSERT #BulkTemporary FROM 'D:\Temp\File.txt'
WITH (FIELDTERMINATOR = '\t', ROWTERMINATOR = '\n')

--Filter results
SELECT * INTO MyTable FROM #BulkTemporary WHERE Value IN ('Row2', 'Row3')

--Drop temporary table
DROP TABLE #BulkTemporary

希望这有帮助。

答案 1 :(得分:1)

只需批量插入到临时表和表单中,就可以将实际需要的数据移动到生产表中。 Where子句用于根据SQL Server内部的特定条件执行某些操作,而不是用于将数据加载到SQL Server中。