我正在處理非常大的分隔文件。這些文件已經過預處理,以確保字段和行分隔符有效。偶爾會處理一行失敗的TSQL約束(通常是數據類型問題)。在這種情況下,「修復」輸入數據不是一種選擇。TSQL BULK INSERT行錯誤導致C#異常
我們使用MAXERRORS
來設置可接受數量的輸入錯誤,並使用ERRORFILE
來記錄失敗的行。
批量插入在SSMS中完成,並且每個失敗行的消息窗口中記錄了嚴重級別爲16的錯誤消息。試圖通過C#SqlCommand
類嘗試執行此代碼會導致在生成第一個嚴重級別爲16的錯誤消息時引發異常,從而導致批處理失敗。
有沒有辦法完成操作,並通過C#和類似SqlCommand的東西忽略SQL錯誤消息?
示例命令:
BULK INSERT #some-table FROM 'filename'
WITH(FIELDTERMINATOR ='\0',ROWTERMINATOR ='\n',FIRSTROW = 2, MAXERRORS = 100, ERRORFILE = 'some-file')
您是否考慮過使用SSIS? – HLGEM 2012-07-19 18:54:41
@HLGEM我們正在使用SQL 2008 Express。我的理解是,該級別的SSIS缺乏我需要的功能。 – jhappoldt 2012-07-19 18:56:04