我有一个6.00 GB的.txt
文件。它是制表符分隔的文件,因此当我尝试将其加载到SQL Server时,列分隔符是制表符。
我需要将.txt
文件加载到数据库中,但我不需要6.00 Gb文件中的所有行。我需要能够使用像
select *
into <my table>
where column5 in ('ab, 'cd')
但这是一个文本文件,无法将其加载到具有该条件的db中。
任何人都可以帮我吗?
答案 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中。