我知道這裏有其他線程關於這個問題,並沒有建議的修復工作。我已經驗證每條記錄末尾的CRLF是一個十六進制'0D0A'。我可以在VBS中替換vbCrLf並替換它們中的每一個。SQL Server批量導入ROWTERMINATOR vbCrLf( n)不工作
這裏是我的製表符分隔文本文件的樣本:
01/16/2013 11:00 HS01 DocLast, DocFirst PA-C Occurred ML 11/20/2012 15:31
01/07/2013 09:40 HS01 DocLast, DocFirst PA-C Canceled ML 11/20/2012 15:36 Patient Canceled 20130103-57935
我執行對文本文件,該代碼在存儲過程在SQL Server 2008:
set @sqlcmd = '
BULK INSERT #temp_import_records
FROM ''' + @import_file + '''
WITH
(
ROWTERMINATOR = ''\n''
)'
我試圖將這個文本插入到一個20列的臨時表中。這個數據只有10個字段。用我的代碼,這兩個記錄都被安裝到臨時表中的同一記錄中。我曾嘗試將rowterminator設置爲'0D0A'和'0x0A',但都沒有工作。
我在做什麼錯?
我建議這與準確的10場加載到一個臨時表,然後從該表到選擇決賽桌#temp_import_records。 – laylarenee
問題在於我將多個文件導入到這個臨時表中,並不是所有的文件都有10個字段。我正在使用select查詢來獲取此臨時表的內容,並將數據與其他數據一起導入永久表中。大容量插入不允許我混合其他數據與正在導入的數據,所以我必須使用這兩步過程。 – user3014525
+1。非常好的問問題。 –