2009-01-23 36 views
1

我試圖使用BULK INSERT語句從文本文件中填充SQL Server中的大型(17千萬行)表。一個類型爲nchar(17)的列對其具有UNIQUE約束。我已經檢查過(使用一些Python代碼)該文件不包含重複項,但是當我執行查詢時,我從SQL Server收到以下錯誤消息:當執行BULK INSERT時,SQL Server是否以任何方式轉換文本?

無法在對象'dbo.tbl_Name'中插入重複鍵行索引'IX_tbl_Name'。

服務器能否以某種方式轉換文本,因爲它執行BULK INSERT? SQL Server數據庫是否禁止nchar列中的任何標點符號,或者是否要求任何轉義符?有什麼方法可以找出哪一排導致麻煩?我應該切換到其他插入數據的方法嗎?

回答

3

列上的整理設置可能會導致數據被視爲重複,而您的代碼可能會將其視爲唯一的。重音和大寫等情況可能會在某些排序規則設置下導致問題。

+0

區分大小寫 - 就是這樣!非常感謝。 – 2009-01-23 15:45:48

0

另一個想法也是將空值或空值計爲重複項,所以你的Python代碼可能沒有發現任何文本重複項,但是這些空白項是什麼?