在進行SQL數據庫維護時,發現有幾行記錄明顯有錯誤卻刪除不了,一執行刪除命令就提示“已更新或刪除的行值要么不能使該行成為唯一行,要么改變了多個行(X行)。”表現為在:數據庫中出現了重復的鍵值或數據,當試圖刪除時錯誤提示信息就出來了。建立的幾個表都沒有關鍵字,設置好關鍵字后問題解決。
微軟的官方網站對此問題也有說明,BUG: 您可能會收到當您嘗試使用 SQL Server Management Studio 更新 SQL Server 2005 中的表的行時 微軟給了個替代方法:要變通解決此問題,創建 SQL Server Management Studio 中的在新的查詢窗口。 然后,運行 SQL UPDATE 語句更新表中的行。
方法一:這種問題大多由于沒有主鍵引起,可以通過另外加一列主鍵解決
1、添加主鍵
ALTER TABLE 表名
add id int identity primary key (注意:必須加identity,否則添加會失敗)
2、刪除重復數據
可以手動,也可以用查詢語句先查找出來再刪除
3、刪除新添加的主鍵列,在原有的表上重新設置某一列為主鍵
方法二:
利用INSERT INTO 做一些小的變換,具體步驟如下:
先將原用的表做個備份,根據條件將滿足條件的數據導到新的表來,再將原表清除,最后將備份表中的數據select過來即可。
第一步:在備份表中導入需要的數據
INSERT INTO DataFile_backup
select * from DataFile where year(consumedate)=條件
第二步:清除原表中的數據
Delete from DataFile
第三步:從備份表中導入數據
select * from DataFile





