国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

正確刪除 SQL Server 表中的重復行的實際操作步驟

數據庫 SQL Server
以下的文章主要向大家講述的是正確刪除 SQL Server 表中的重復行的實際操作流程,以及對其在實際操作中要用到的代碼的描述。

此文章主要是教會大家如何正確刪除 SQL Server 表中的重復行,我們大家都知道Microsoft SQL Server 數據庫中的實際應用表其不應該包含重復行與非唯一主鍵。為簡潔起見,在本文中我們有時稱主鍵為“鍵”或“PK”,但這始終表示“主鍵”。

重復的 PK 違反了實體完整性,在關系系統中是不允許的。SQL Server 有各種強制執行實體完整性的機制,包括索引、唯一約束、主鍵約束和觸發器。

 

盡管如此,在某些情況下還可能會出現重復的主鍵;如果出現此類情況,就必須清除重復主鍵。出現重復主鍵的情形之一是,在 SQL Server 外部的非關系數據中存在重復的 PK,在導入這些數據時沒有強制執行 PK 唯一性。出現重復主鍵的另一種情形來自數據庫設計錯誤,如沒有對每張表強制執行實體完整性。

通常在嘗試創建唯一索引時會發現重復的 PK,因為如果找到重復的鍵,唯一索引的創建即會中止,并且將顯示以下消息:

  1. Msg 1505, Level 16, State 1 Create unique index aborted on duplicate key. 

如果使用的是 SQL Server 2000 或 SQL Server 2005,則會收到以下錯誤消息:

  1. Msg 1505, Level 16, State 1 CREATE UNIQUE INDEX terminated   
  2. because a duplicate key was found for object name '%.*ls' and index name '%.*ls'.The duplicate key value is %ls.  

本文討論如何查找和刪除 SQL Server 表中的重復的主鍵。但是,您應該仔細檢查出現重復鍵的進程以避免重復出現。

更多信息

在該示例中,我們將使用下表,它具有重復的 PK 值。在該表中,主鍵是兩列(col1、col2)。我們無法創建唯一索引或主鍵約束,因為這兩行具有重復的 PK。該過程演示如何識別和刪除 SQL Server 表重復的主鍵。

  1. create table t1(col1 int, col2 int, col3 char(50))   
  2. insert into t1 values (1, 1, 'data value one')   
  3. insert into t1 values (1, 1, 'data value one')   
  4. insert into t1 values (1, 2, 'data value two') 

第一步是識別哪些行具有重復的主鍵值:

  1. SELECT col1, col2, count(*)   
  2. FROM t1   
  3. GROUP BY col1, col2   
  4. HAVING count(*) > 1 

這將為表中的每組重復的 PK 值返回一行。此結果中的最后一列是特定 PK 值的重復數。

  1. col1 col2   
  2. 1 1 2 

如果只有幾組重復的 PK 值,則最佳方法是手動逐個刪除它們。例如:

  1. set rowcount 1   
  2. delete from t1   
  3. where col1=1 and col2=1 

rowcount 值應該是給定鍵值的重復數減去 1。在該示例中,有 2 個重復的主鍵,所以 rowcount 被設置為 1。col1/col2 值來自上面的 GROUP BY 查詢結果。如果 GROUP BY 查詢返回多行,則“set rowcount”查詢將必須為這些行中的每一行各運行一次。每次運行該查詢時,將 rowcount 設置為特定 PK 值的重復數減去 1。

在刪除行之前,您應該驗證是否整行重復。雖然整行重復不太可能發生,但可能 PK 值重復,而整行不重復。例如一個將身份證號碼作為主鍵的表,該表有兩個具有相同號碼的不同的人(即行),但每個人有唯一的屬性。在這種情況下,任何引起重復鍵的問題可能還引起在行中放入有效的唯一的數據。在刪除該數據之前,應該將該數據復制出來并保存下來以進行研究和適當的調整。

 如果表中有多組完全不同的重復的 PK 值,則逐個刪除 SQL Server 表中的重復行會很費時間。在這種情況下,可使用下面的方法: 1.首先,運行上面的 GROUP BY 查詢來確定有多少組重復的 PK 值及每組的重復數。

2.選擇重復的鍵值放入臨時表中。例如:

  1. SELECT col1, col2, col3=count(*)   
  2. INTO holdkey   
  3. FROM t1   
  4. GROUP BY col1, col2   
  5. HAVING count(*) > 1 

3.選擇重復的行放入臨時表中,以清除進程中的重復值。例如:

  1. SELECT DISTINCT t1.*   
  2. INTO holddups   
  3. FROM t1, holdkey   
  4. WHERE t1.col1 = holdkey.col1   
  5. AND t1.col2 = holdkey.col2 

4.此時,holddups 表應有唯一的 PK;但是,如果 t1 有重復的 PK 而行唯一(如上面的 SSN 示例),情況就不是這樣了。請驗證 holddups 中的各個鍵是否唯一,是否沒有鍵重復而行唯一的情況。如果是這樣,您必須停在該處,確定對于給定重復的鍵值,您希望保留哪些行。例如,以下查詢:

  1. SELECT col1, col2, count(*)   
  2. FROM holddups   
  3. GROUP BY col1, col2 

應為各行返回計數 1。如果結果是 1,請繼續執行下面的步驟 5。如果不是 1,則存在鍵重復而行唯一的情況,且需要您決定要保存哪些行。通常,這將需要舍棄行或為此行創建新的唯一的鍵值。為 holddups 表中每個此種重復 PK 執行這兩個步驟之一。

5.從原始表中刪除 SQL Server 表中的重復行。例如:

  1. DELETE t1   
  2. FROM t1, holdkey   
  3. WHERE t1.col1 = holdkey.col1   
  4. AND t1.col2 = holdkey.col2 

6.將唯一行放回原始表中。例如:

  1. INSERT t1 SELECT * FROM holddups 

 

 

上述的相關內容就是對刪除 SQL Server 表中的重復行的描述,希望會給你帶來一些幫助在此方面。

【編輯推薦】

  1. SQL Server數據整理的操作方案描述
  2. SQL Server 日期操作全接觸,嘻嘻
  3. 對SQL Server 2005 BI的描述
  4. SQL server DateDiff 函數語法中的命名參數
  5. 批量修改SQL Server 2005表構架很簡單!
責任編輯:佚名 來源: 51CTO.com
相關推薦

2010-07-12 10:13:44

SQL Server表

2010-07-05 10:15:40

SQL Server

2010-06-28 12:46:09

SQL Server

2010-07-21 15:22:07

2010-07-16 11:10:52

SQL server

2010-09-13 09:53:42

IT服務管理

2010-07-23 14:26:37

SQL Server存

2010-07-02 11:10:56

SQL Server

2010-07-21 09:28:34

SQL Server

2010-04-16 17:17:31

Oracle訪問

2010-04-15 14:30:35

Oracle創建

2009-04-20 15:54:04

SQL Server重復行

2010-07-07 11:03:21

SQL Server索

2010-03-12 15:29:19

Pythonexe

2010-06-09 11:40:32

MySQL SQL 語

2010-04-28 10:13:37

Oracle刪除重復數

2010-07-14 11:35:57

SQL Server修

2010-06-17 10:50:53

SQL Server數

2010-05-07 12:19:38

Oracle刪除用戶表

2010-09-01 16:47:18

SQL刪除
點贊
收藏

51CTO技術棧公眾號

日韩欧美一区二区视频在线播放| 嫩草懂你的影院| 成人精品网站在线观看| 99亚洲伊人久久精品影院| 国产精选一区二区三区| 成人日韩av在线| 亚洲精品456| 欧美激情极品视频| 成人动漫视频在线观看| 亚洲精品视频网上网址在线观看| 黄色在线免费| 在线观看国产一区二区| 一级视频在线观看视频在线啦啦| 亚洲美女视频在线观看| 午夜免费精品视频| 久久婷婷久久一区二区三区| 强伦女教师2:伦理在线观看| 丝袜美腿一区| 精品sm在线观看| 精精国产xxxx视频在线| 欧美性受极品xxxx喷水| 亚洲精品成人自拍| 丝袜美腿一区| 国产午夜精品麻豆| www.综合网.com| 日韩精品一区二区三区老鸭窝| 1024国产在线| 欧美色精品在线视频| 小明精品国产一区二区三区| 性感美女久久精品| 成人性生交大片免费看视频r| 清纯唯美综合亚洲| 先锋影音久久久| 美女久久久久久| 国产日韩欧美电影| 能在线观看的av| 91视频免费播放| 日韩精品 欧美| 久久久九九九九| 成人av网页| 日韩视频精品在线观看| 久久综合狠狠综合久久综青草| 国产欧美丝祙| 四虎精品欧美一区二区免费| 99久久综合国产精品| 奇米亚洲午夜久久精品| 国内一区二区视频| 98精品国产自产在线观看| 精品国产一区二区三区久久久蜜月 | 91精品综合视频| aaa免费看大片| 亚洲欧美色图小说| 欧美精品成人一区二区在线观看| 日韩不卡在线| 青青久草在线| 蜜桃视频在线观看一区二区| 97久久精品人人澡人人爽缅北| 国产午夜精品久久久 | 欧美精品xxxxbbbb| 在线看国产精品| 日本黑人久久| 视频一区二区视频| aaa欧美日韩| 免费看成一片| 91精品国产一区二区三区 | 国产欧美日韩一区二区三区在线观看| 国产日韩精品电影| 一本色道久久综合亚洲精品高清| 青青草综合视频| 亚洲欧美另类图片小说| gogo在线观看| 欧美激情精品久久久| 国产精品a久久久久| 欧美视频在线观看视频| 亚洲va中文字幕| 欧美aa免费在线| 伊人色综合久久天天人手人婷| 精品99又大又爽又硬少妇毛片| 久久久久亚洲蜜桃| 久久99久久| 最新中文字幕亚洲| 午夜激情一区| 国产免费999| 日韩视频中午一区| 一区二区三区韩国免费中文网站| 日韩av电影免费观看| 亚洲人成网站影音先锋播放| 人人草在线视频| 92国产精品久久久久首页 | 免费观看久久av| 在线观看国产精品91| 欧美亚洲国产激情| 免费国产成人看片在线| 亚洲高清久久久| 亚洲免费一区| 欧美日韩电影一区二区三区| 亚洲欧美视频一区| 欧美aaa级| 亚洲视频在线观看日本a| 午夜视频一区在线观看| 日韩精品一区二区三区免费视频| 一区二区国产精品视频| 亚洲欧洲美洲一区二区三区| 国产成人精品电影| 国产成人免费视频网站| 青青草免费在线| 97在线观看免费高清| 国产一区在线观看视频| 欧美69xxxxx| 欧洲色大大久久| 国产精品香蕉| 日本黄色片一级片| 日韩欧美第一区| 欧美日韩网址| 亚洲小说区图片区情欲小说| 亚洲国产精品尤物yw在线观看| 日韩电影精品| 一区二区在线观看网站| 欧美性大战久久久久久久| 精品久久97| 国产精品91在线| 91麻豆免费在线观看| 欧美xxxhd| 小说区图片区图片区另类灬| 狠狠色伊人亚洲综合成人| 天堂中文8资源在线8| 337p亚洲精品色噜噜| 久久人体视频| 福利视频久久| 亚洲国产中文字幕| 国产a久久精品一区二区三区| 一道本视频在线观看| 亚洲欧美日韩人成在线播放| 成人免费在线观看视频| 人妻无码一区二区三区四区| 日韩av在线一区二区| 96sao精品免费视频观看| 日韩第一页在线观看| 国产丝袜精品第一页| 六月丁香婷婷久久| 日本乱码一区二区三区不卡| 伊人久久婷婷色综合98网| 亚洲精品av在线| 国产在线播放一区三区四| 国产乱码精品一区二三赶尸艳谈| 亚洲午夜精品一区二区| 日韩电影第一页| 国产xxx精品视频大全| 九色丨porny丨自拍入口| 久久久久久久久久久久久久久久久久av| 国产一区二区在线视频你懂的| 日本新janpanese乱熟| 欧美国产视频日韩| 一区二区三区在线观看动漫| 亚洲一区欧美| 在线播放蜜桃麻豆| 欧美激情小视频| 国产精品国产三级国产有无不卡| 免费理论片在线观看播放老| 亚洲综合在线播放| 欧美日韩一区二区三区在线 | 91国语精品自产拍在线观看性色| 国产精品国产三级国产有无不卡| 天堂av一区二区三区在线播放 | 免费av毛片在线看| 中文字幕日韩精品一区二区| yellow中文字幕久久| 国产精品夫妻自拍| 亚洲女同一区| 国产精品13p| 羞羞小视频视频| 国产一区二区三区免费不卡| 日韩精品欧美国产精品忘忧草 | 蜜臀精品一区二区| 538国产精品视频一区二区| 色婷婷综合久色| 久久精品国产精品亚洲综合| 亚洲一区二区av| 在线观看av中文| 制服国产精品| 久久久亚洲网站| 一本到高清视频免费精品| 久久国产综合精品| 欧美自拍一区| 男人天堂亚洲天堂| 国产精品第100页| 国产激情一区二区三区桃花岛亚洲| 成人在线视频www| 日本一二区视频| 婷婷久久青草热一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 欧美日韩国产一区中文午夜| 精品一区二区三区视频| 最新国产精品视频| 欧美色图天堂| 日本女优天堂99伊人| 中文字幕精品在线播放| 91精品在线看| 九色精品免费永久在线| 日韩午夜电影在线观看|