本文主要介紹sql server刪除重復(fù)數(shù)據(jù)(sql刪除重復(fù)記錄),下面一起看看sql server刪除重復(fù)數(shù)據(jù)(sql刪除重復(fù)記錄)相關(guān)資訊。
microsoft sql server表不應(yīng)包含重復(fù)和非唯一的主鍵。為簡(jiǎn)單起見(jiàn),本文中我們有時(shí)稱(chēng)其為主鍵作為key或pk,但這始終代表主鍵。重復(fù)pk違背了實(shí)體完整性,而不是允許關(guān)系型system.sql server中的各種強(qiáng)制實(shí)體完整性,包括索引、唯一約束、主鍵約束和觸發(fā)器。然而,在某些情況下可能會(huì)出現(xiàn)重復(fù)的主鍵;如果發(fā)生這種情況,必須清除重復(fù)的主鍵。出現(xiàn)重復(fù)主鍵的情況是,在導(dǎo)入sql server pk copy和pk unique中的非關(guān)系數(shù)據(jù)時(shí),不會(huì)執(zhí)行這些數(shù)據(jù)。重復(fù)主鍵的另一種情況是數(shù)據(jù)庫(kù)設(shè)計(jì)錯(cuò)誤,例如沒(méi)有執(zhí)行每個(gè)表的實(shí)體完整性。通常,當(dāng)您嘗試創(chuàng)建唯一索引時(shí),您會(huì)發(fā)現(xiàn)一個(gè)重復(fù)的pk,因?yàn)槿绻l(fā)現(xiàn)一個(gè)重復(fù)的鍵,您將停止創(chuàng)建唯一索引并顯示以下消息。消息1505,級(jí)別16,狀態(tài)1在重復(fù)索引上創(chuàng)建唯一索引中止。如果您使用sql server 2000或sql server 2005,您將收到以下錯(cuò)誤消息:msg 1505,級(jí)別16,狀態(tài)1唯一索引的創(chuàng)建因重復(fù)鍵(也稱(chēng)為tan)而終止,以及。本文討論了如何查找和刪除表中的重復(fù)主鍵,但是重復(fù)鍵的過(guò)程要仔細(xì)檢查,避免重復(fù)。更多信息在本例中,我們將使用下表,該表有一個(gè)重復(fù)的pk值。該表中的主鍵(列1和列2)。我們可以 t創(chuàng)建唯一索引或主鍵約束,因?yàn)檫@兩行重復(fù)pk。此過(guò)程演示了如何識(shí)別和刪除重復(fù)的主鍵。復(fù)制代碼如下:create table t1(col2 int,int col2,col3 char(50)) insert t1 value (1,1,數(shù)據(jù)值)insert t1 value (1,1,數(shù)據(jù)值)insert t1 value (1,2,數(shù)據(jù)值2)。第一步是確定哪些行有重復(fù)的主鍵值:復(fù)制代碼如下:select col1。該結(jié)果的最后一列是特定pk值的重復(fù)次數(shù)。2col2112如果只有幾組重復(fù)的pk值,最好的辦法是手工逐個(gè)刪除:復(fù)制代碼如下:設(shè)置行數(shù)1從t1開(kāi)始刪除給定關(guān)鍵字值的重復(fù)次數(shù)其中2 = 1和col2 = 1的行值要從1中減去。在這個(gè)例子中,有兩個(gè)重復(fù)的主鍵,所以行數(shù)被設(shè)置為1,2/col 2,這來(lái)自于對(duì)上述組的性能的查詢。如果該查詢返回多個(gè)行組,設(shè)置行查詢將在。每運(yùn)行一次查詢,設(shè)置特定pk值的行數(shù)就會(huì)減少1。在刪除一行之前,您應(yīng)該確認(rèn)整行都是重復(fù)的。雖然不能全行重復(fù),但是pk值可以重復(fù),全行不重復(fù)。例如,id號(hào)表的主鍵有兩個(gè)不同的人在同一個(gè)號(hào)碼(行)中,但每個(gè)人都有唯一的屬性。在這種情況下,任何導(dǎo)致重復(fù)的關(guān)鍵問(wèn)題也可能導(dǎo)致該行的有效和唯一數(shù)據(jù)。在刪除數(shù)據(jù)之前,應(yīng)復(fù)制并保存數(shù)據(jù),以供研究和適當(dāng)調(diào)整。如果表中有多組完全不同的pk值,需要逐個(gè)刪除。在這種情況下,可以采用以下方法:1。首先,通過(guò)一個(gè)查詢運(yùn)行上述組,以確定pk值和每組中的重復(fù)次數(shù)。2。在臨時(shí)表中選擇重復(fù)的鍵值:復(fù)制代碼如下:select col1,col2,col3 = number (*)在hutchison t1 group col1,col2 count (*) 1 3。在臨時(shí)表中選擇重復(fù)行,消除過(guò)程中的重復(fù):復(fù)制代碼如下:從t1中選擇不同的t1 *到holddups,t1.col1 = holdkey.col1和t1.col2 = holdkey.col2 4中的hutchison,此時(shí),holddups表應(yīng)該有唯一的pk;但是,如果t1有重復(fù)的唯一pk和行,如上面的ssn示例所示,則情況并非如此。如果不存在關(guān)鍵字重復(fù)和唯一性,請(qǐng)驗(yàn)證holddups中的關(guān)鍵字是否唯一。如果是這樣,您必須停下來(lái),并確保您想要保留給定重復(fù)鍵值的行。例如下面的查詢:copy code代碼如下:select col1,col2,count (*)從holddups組col1,col2每一行都要返回1。如果結(jié)果為1,請(qǐng)執(zhí)行下面的步驟5。如果不是1,這就是唯一的情況。關(guān)鍵是重復(fù)。您需要決定要保存哪一行。通常,這將需要放棄一行或創(chuàng)建一個(gè)新的唯一鍵值行。其中一個(gè)步驟是在holddups表中重復(fù)pk。5。刪除原表中重復(fù)的行:復(fù)制代碼如下:從t1中刪除t1,記錄在t1.col1 = holdkey.col1和t1.col2 = holdkey.col2 6中。將唯一一行返回到原始表:插入t1并從holddups中選擇*。
了解更多sql server刪除重復(fù)數(shù)據(jù)(sql刪除重復(fù)記錄)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。
牛津英語(yǔ)詞典電子版下載(牛津英語(yǔ)大詞典 電子版)
電腦裝系統(tǒng)怎么分區(qū)合理,電腦不重新裝系統(tǒng)可以分區(qū)嗎
適合初中生的筆記本電腦推薦,初中生用什么筆記本電腦比較好
電腦e盤(pán)紅色什么意思(為什么電腦e盤(pán)顯示紅色)
機(jī)械硬盤(pán)怎么裝在硬盤(pán)架上,機(jī)械硬盤(pán)要怎樣裝上去啊
sql server刪除重復(fù)數(shù)據(jù)(sql刪掉重復(fù)記錄)
google nexus s(谷歌nexus手機(jī)官網(wǎng))
聯(lián)想a789怎么恢復(fù)出廠設(shè)置,聯(lián)想A789刷機(jī)教程詳細(xì)點(diǎn)
小米產(chǎn)品怎么換貨,在小米官方網(wǎng)站買(mǎi)了個(gè)手機(jī)還沒(méi)到貨呢我想換怎么換啊
魅藍(lán)u10怎么刷國(guó)際版,如何刷國(guó)際版miui
怎樣查電腦的內(nèi)存和配置,如何查看電腦配置
pcie轉(zhuǎn)m2可以當(dāng)系統(tǒng)盤(pán)嗎(pcie轉(zhuǎn)m2裝系統(tǒng)win10)
mate9大光圈怎么4,華為p9 plus怎么調(diào)光圈
硬盤(pán)品牌排名前十,存儲(chǔ)硬盤(pán)制造商排名前十
5g手機(jī)處理器排行榜2021(5g手機(jī)處理性能)
dwl怎么刪除(dw怎么刪除js)
電腦字體怎么切換中文(怎樣將電腦字體改為中文)
打游戲win10(windows10打游戲)
ssd硬盤(pán)不識(shí)別
榮耀8怎么調(diào)出拍照模式,榮耀v8相機(jī)專(zhuān)業(yè)模式怎么調(diào)