文章編號: 139444 - 上次校閱: 2005年11月23日 - 版次: 4.2 如何從 SQL Server 中的資料表中移除重複的資料列
結論Microsoft SQL Server 資料表應該永遠不會包含重複資料列,也非唯一的主索引鍵。為了保持簡潔,我們會有時參照至主索引鍵為"索引鍵 」 或 PK"本文章中但是這將會永遠表示 「 主索引]。 重複 PKs 實體完整性的違規情形,而且應該不允許在關聯式系統中。SQL Server 具有各種機制對於強制實體完整性包括索引、 UNIQUE 條件約束、 主索引鍵條件約束與觸發程序。 儘管這,不尋常的情況下重複的主索引鍵而且可能會發生,如果是,它們必須消滅他們。它們可以發生的方法之一是重複 PKs 存在於 SQL Server 外的非關聯式資料,並且 PK 唯一性不被實施時,資料匯入。它們可以發生的另一種方式是透過如不強制執行每個資料表上的實體完整性資料庫設計錯誤。 通常當您嘗試建立將會中止如果找不到重複的索引鍵上一個唯一索引時,會注意到重複 PKs。這個訊息是: 訊息 1505,層級 16 狀態 1 建立唯一索引中止重複的索引鍵。 msg 1505,層級 16 狀態 1 CREATE UNIQUE INDEX 終止,因為找不到物件名稱的重複索引鍵 ' %* ls' '和索引名稱' %*! ''。 重複的關鍵值是 %1!。 其他相關資訊為使本範例中,我們將使用下列的表格具有重複 PK 值。 此表格中主索引鍵會是兩個資料行 (col1、 col2)。因為兩個資料列擁有重複 PKs,我們無法建立唯一索引或主索引鍵條件約束。這個程序說明如何識別並移除重複的項目。 摺疊此表格
如果個只有少數組的重複 PK 數值最佳的程序就是刪除這些個別的基礎上,手動。例如: 在刪除資料列前您應該驗證整個資料列重複。雖然不太可能,很可能 PK 值是重複,但不是整個列。這個範例是具有身份證字號作為主索引鍵的資料表和相同號碼的有兩個不同的人 (或列),各有獨特的屬性。在這種情況下任何發生故障造成重複的索引鍵有也可能造成有效唯一的資料放到列中。此資料應複製,並且保留之前要刪除資料的研究,並儘可能對帳。 如果個許多不同資料表中的重複 PK 值組可能是太耗費時間分別移除它們。在這種情況下可使用下列程序:
這篇文章中的資訊適用於:
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:139444?
(http://support.microsoft.com/kb/139444/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群立即取得協助文章翻譯
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


回此頁最上方
