2010-03-11 42 views
1

數據庫服務器:SQL Server 2000中 - 8.00.760 - SP3 - 標準版SQL Server 2000中不正確的消息:重複鍵具有唯一索引

我有5列,其中我想補充一個大的(表300.000)記錄數。有兩列組合的唯一索引。如果我有了這個唯一索引添加記錄時,SQL Server提供了此錯誤消息:

消息2601,級別14,狀態3,第1行 不能在對象'TestTable的具有唯一索引插入重複鍵行'測試'。 該聲明已被終止。

(0行(S)的影響)

但是,如果我刪除唯一索引,然後添加記錄,當我後來創建這個唯一索引我沒有得到任何錯誤。

+0

什麼是用來添加記錄? – VladV

+0

Microsoft SQL Server Management Studio Express 9.00.2047.00 - 一個插入查詢,該插入查詢從不同服務器上的表中選擇記錄,該服務器由包含該表的同一個數據庫中的表連接,並希望將該表添加到300k條記錄中。 – George

回答

0

檢查哪些字段構成您的唯一索引。

您的源數據在導致INSERT失敗的那些字段上有重複。

你做什麼取決於你的數據的性質。如果只是一行比其他行更新,使原來的過時,那麼你可以擺脫。否則,請與您的業務人員約: -

  • 你應該用欺騙數據
  • 做什麼的 列的唯一約束是否必要

有些問題是很容易解決。對於這一個,你的大部分解決方案其實都是非技術性的。

+0

據我所知,我想添加的記錄中沒有重複的數據。因爲如果我添加沒有此索引的記錄,我不會收到錯誤消息,並且在添加記錄後可以添加此唯一索引。但是當我第一次創建唯一索引時,我無法添加記錄! – George

0

你的一個假設必須是錯的。重新訪問它們。索引的性質,進入的數據,預先存在的數據(如果有),排序規則(不區分大小寫/區分大小寫)。

0

ALTER TABLE中使用WITH NOCHECK的唯一約束(不是索引)?

相關問題