2015-09-24 54 views
0

我試圖從流行GeoNames的網站導入一些數據到SQL Server。這是一個製表符分隔的文本文件。我不認爲會有問題,但無論我做什麼,我只會收到一條錯誤消息,內容如下:我怎樣才能批量加載此文件到SQL Server 2012?

批量加載失敗。該柱是在數據文件太長行1,列4.驗證字段終止和行終止正確指定。

這是我想要導入的文件: http://download.geonames.org/export/dump/admin2Codes.txt

...這是我的表:

CREATE TABLE [Admin2Codes](
    [code] [VARCHAR](20) NOT NULL, 
    [name] [NVARCHAR](200) NOT NULL, 
    [asciiname] [NVARCHAR](200) NOT NULL, 
    [geonameId] [INT] NOT NULL 
) 

我看不出有什麼問題。它可以工作,如果我只有一行文件,但只要有多行,它就會失敗。該文件中的行結束似乎是\ n和我的SQL相匹配:

BULK INSERT dbo.Admin2Codes FROM 'D:\admin2codes.txt' 
WITH( 
    DATAFILETYPE = 'widechar', 
    FIELDTERMINATOR = '\t', 
    ROWTERMINATOR = '\n' 
) 
GO 
+0

您是否已經將admin2Codes.txt從UTF-8轉換爲UTF-16? –

回答

0

貌似數據使用換行作爲在UNIX使用代替回車換行符行終止在窗口中。試試這個:

ROWTERMINATOR = '''+CHAR(10)+'''