2009年11月16日 星期一

在 SQL Server 資料表移除重複的資料列

如何從一個資料表在 SQL Server 移除重複的資料列
以下文引用Microsoft技術支援文章 http://support.microsoft.com/kb/139444


Microsoft SQL Server 資料表時,不應該包含重複的資料列也非唯一的主索引鍵。

為了保持簡潔,我們會有時參照至主索引鍵為 「 金鑰 」 或 「 PK] 此的文件中但是這將會永遠表示
「 主要金鑰。 重複 PKs 是實體完整性的違規情形,而且應該不允許在關聯式系統中。
SQL Server 必須強制執行實體整合性包括索引、 UNIQUE 條件約束、 主索引鍵的條件約束和觸發程序的各種機制。

儘管這,在特殊情況就可能發生重複的主索引鍵,然後如果是,它們必須消滅他們。

它們可能會發生的方法之一是重複 PKs 存在於 SQL Server,外部的非關聯式資料,並且 PK 唯一性不被實施時,資料匯入。
它們可能會發生的另一個方法是透過如不強制執行每個資料表上的實體完整性資料庫設計錯誤。

通常當您嘗試建立它將會中止,如果找不到重複的索引鍵的唯一索引時,會注意到重複 PKs。 這個訊息是:
------------------------------------------------------------------------------------------------------------------------------
訊息狀態 1,層級 16,1505年建立重複索引鍵已中止的唯一索引。

------------------------------------------------------------------------------------------------------------------------------

如果您使用 SQL Server 2000 或 SQL Server 2005,您可能會收到下列錯誤訊息:
------------------------------------------------------------------------------------------------------------------------------ 
訊息 1505,層級 16,狀態 1 建立唯一 INDEX 終止,

因為找不到物件名稱的重複索引鍵 '%* 1!' '和索引名稱' %1 *! ''。 重複金鑰值是 %1! '。
------------------------------------------------------------------------------------------------------------------------------ 
本文將討論如何尋找及從一個資料表中移除重複的主索引鍵。 但是,您應該仔細檢查允許以避免了循環發生重複的處理程序。

0 意見:

張貼留言

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Web Hosting Bluehost