我有一個.txt
文件,它是6.00 GB。它是一個製表符分隔的文件,所以當我嘗試將它加載到SQL Server時,列分隔符是選項卡。使用where子句將txt文件導入SQL Server
我需要將該.txt
文件加載到數據庫中,但我不需要6.00 Gb文件中的所有行。我需要能夠使用條件像
select *
into <my table>
where column5 in ('ab, 'cd')
但是這是一個文本文件,我不能將它與條件加載到數據庫。
任何人都可以幫助我嗎?
我有一個.txt
文件,它是6.00 GB。它是一個製表符分隔的文件,所以當我嘗試將它加載到SQL Server時,列分隔符是選項卡。使用where子句將txt文件導入SQL Server
我需要將該.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
希望這會有所幫助。
只需將大容量插入到臨時表中,然後在其中將實際需要的數據移動到生產表中。 Where子句用於根據SQL Server中的特定條件執行某些操作,而不是將數據加載到SQL Server中。
不,你不能在SQL Server本地執行此操作 – SQLMason
你會從平面文件中導入*最*行嗎?你正在尋找一些你可以輕鬆完成的事情,比如['grep'](http://www.gnu.org/software/grep/manual/grep.html)?如果是這樣,您可以在導入之前過濾數據。否則,你可能不得不導入整個文件,然後運行'DELETE FROM' ...'WHERE'語句。 –
謝謝BOB,我會導入大約20%的文件,事情是當我在平面文件上進行預覽時,默認的列名(第11列)就是我需要的條件之一。該colmn有大約65個不同的名稱,我需要過濾2個名字。我可以嘗試使用visual studio或任何其他工具。? – user1960217