0
當前我正在使用SQLCMD實用程序將CSV數據加載到SQL Server。下面是這是在命令提示符下執行加載數據我的命令:SQLCMD實用程序生成被拒絕的行到平面文件
sqlcmd -Usa -Pxxx -S192.168.1.223,49546 -dlocal -i"/test.sql" -o"/test.log"
我還抄我test.sql
文件內容,供大家參考:
SET NOCOUNT ON
BULK INSERT test FROM
"\\192.168.1.223\test.csv"
WITH
(
MAXERRORS = 1000000,
CODEPAGE = 1251,
FIELDTERMINATOR = '~%',
ROWTERMINATOR = '0x0a'
)
GO
SELECT CONVERT(varchar,@@ROWCOUNT) + ' rows affected'
GO
插入操作工作正常,上述處理。但我擔心的是,如果由於數據類型或數據長度而導致任何錯誤,該行將被拒絕,並且我無法跟蹤特定的行。
每次我必須查看被拒絕的行號和數據文件的日誌文件來檢查相應的行。
是否有任何選項來生成錯誤/拒絕一行到另一個文件中,像我們在ORACLE - SQLPLUS工具來生成壞文件?
謝謝etsa,你能幫助我如何在批量插入中添加「ERRORFILE」語法。請用上面的sql腳本來說明。謝謝 –
嘗試使用MS文檔,如果您有任何問題,請在您的問題中發佈新腳本。 – etsa
在sql腳本文件中添加ERRORFILE ='file_name'後,將在另一個平面文件中創建錯誤記錄。它現在解決了! –