【sql server】"已更新或刪除的行值要么不能使該行成為唯一行,要么改變了多個行" 解決方案


#事故現場:

1、在手動修改某表中數據是,出現如下錯誤提示:

 已更新或刪除的行值要么不能使該行成為唯一行,要么改變了多個行

2、表結構及數據:

#解決方法:

1、原因分析:提示被刪除的行不是唯一行,檢查發現:

  表中出現了重復的數據({name:小紅,age:10}),所以當視圖刪除時,會提示錯誤;

2、解決方法一:添加中間,使行值成為唯一值;

  sql語句:

ALTER TABLE UserInfo
add ID int identity primary key 

  效果:

3、解決方法二:先將原用的表做個備份,根據條件將滿足條件的數據導到新的表來,再將原表清除,最后將備份表中的數據select過來即可;

  1)、在備份表中導入需要的數據

INSERT INTO UserInfo_backup
select distinct name,age from UserInfo

 

   2)、清除原表中的數據;

delete from  UserInfo

 

   3)、從備份表中導入數據;

INSERT INTO UserInfo
select name,age from UserInfo_backup

 

 4、解決方法三:直接刪除出現重復的數據;(具體看情況而定)

delete from  UserInfo where name='小紅' and age=10

 

 

——————————————————————————————————————————————————————


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM