2017-05-02 120 views
1

我都早上一直在這個問題似乎並不能推測出來。我有以下條目一個簡單的txt文件:BULK INSERT 0行受到影響

1,凡Rhijn

2,範壩

3,凡Rhijn範達姆

我試圖導入使用這些字段以下查詢:

CREATE TABLE #test 
(
    Id INT NOT NULL, 
    LastName VARCHAR(MAX) NOT NULL 
) 

BULK INSERT #test 
FROM 'C:\test.txt' 
WITH 
(
    MAXERRORS = 0, 
    FIRSTROW = 1, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\r\n' 
) 

SELECT * 
FROM #test 

我試過了我在網上找到的所有東西。更改分隔符,行結束符,編碼,擴展名。我不斷收到消息「0 row(s)affected」,最後一個選擇顯然沒有返回任何行。

編輯:我使用Microsoft SQL Server。

請幫忙。

+0

你使用MySQL,MS SQL服務器或Sybase?不要標記不涉及的產品。 – jarlh

+0

刪除,因爲語法心不是MySQL的句法 –

+0

我使用MS SQL Server中的MySQL的標籤。 – flexzican

回答

3

可能是一個愚蠢的問題,但你實際使用的語法「的test.txt」或者你使用一個完全合格的,或者至少像「C:\ test.txt的」全路徑?因爲我很確定你需要在這裏使用完整的路徑。

CREATE TABLE #test 
(
    Id INT NOT NULL, 
    LastName VARCHAR(MAX) NOT NULL 
) 

BULK INSERT #test 
FROM 'C:\test.txt' 
WITH 
(
    MAXERRORS = 0, 
    FIRSTROW = 1, 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n' 
) 

SELECT * 
FROM #test 

或是其他地方,你的文件駐留在網絡上(注意,如果你的SQL服務器位於不同的機器,你可能會需要使用網絡路徑和/或共享文件夾組合上)。

編輯:嘗試更新ROWTERMINATOR到\ n只

+0

是的,我正在使用完整路徑。只是簡化了這個問題的路徑。更新了澄清問題。 – flexzican

+0

嘗試更改行終止符。如果你有一個文本編輯器如記事本++,你可以打開不可見的字符,看是否真正遇到新行或返回字符或兩者兼而有之。我用完整的代碼更新了我的答案。我在我的機器上測試過它,它只用\ n而不是\ r \ n。 –

+0

我都試過了,行分隔「\ n」工作 –