使用 where 子句将 txt 文件导入 SQL 服务器

Importing a txt file into SQL Server with a where clause

我有一个 .txt 文件,大小为 6.00 GB。它是一个制表符分隔的文件,所以当我尝试将它加载到 SQL 服务器时,列分隔符是制表符。

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

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

但这是一个文本文件,在这种情况下我无法将其加载到数据库中。

谁能帮我解决这个问题?

您尝试过使用 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

希望对您有所帮助。

只需将批量插入到暂存 table 中,然后将您实际需要的数据移动到生产中 table。 Where 子句用于根据 SQL 服务器内部的特定条件执行某些操作,而不是用于将数据加载到 SQL 服务器。