日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

SQL 已更新或刪除的行值要么不能使該行成為唯一行(sqlserver中有多行所有的列重復(fù)的數(shù)據(jù),無法更新或刪除問題)

 昵稱13847152 2013-09-11

sqlserver中多行所有數(shù)據(jù)重復(fù),無法更新或刪除問題,通常是在沒有主鍵的情況下的表.

錯誤:

 

先確認(rèn)一下表中有沒有主鍵,要是沒有就得使用臨時表來實現(xiàn)刪除重復(fù)的行。方法一:
DELETE FROM 表名 WHERE 主鍵字段名 IN(
SELECT MAX(主鍵字段名) AS 主鍵字段名 FROM 表名 GROUP BY 其他字段 HAVING COUNT(1)>1)

方法二:
SELECT 字段列表  INTO #T FROM 表名 GROUP BY 字段列表
--先刪除原來的數(shù)據(jù)表,再插入不重復(fù)的語句
TRUNCATE TABLE 表名
INSERT INTO 表名 SELECT * FROM #T
DROP TABLE #T

 

示例:

方法一:

delete from tab_test2 where id=(select max(id) from tab_test2  group by id,uid having count(1)>1)

 

方法二:注意:#t是臨時表,在tempdb數(shù)據(jù)庫中的臨時表節(jié)點下可以找到,sqlserver服務(wù)重啟就會消失的表.

select id,uid into #t from tab_Test2 group by id,uid

truncate table tab_Test2

insert into tab_Test2 select * from #t

 

msdn:

在進(jìn)行SQL數(shù)據(jù)庫維護(hù)時,發(fā)現(xiàn)有幾行記錄明顯有錯誤卻刪除不了,一執(zhí)行刪除命令就提示“已更新或刪除的行值要么不能使該行成為唯一行,要么改變了多個行(X行)?!北憩F(xiàn)為在:數(shù)據(jù)庫中出現(xiàn)了重復(fù)的鍵值或數(shù)據(jù),當(dāng)試圖刪除時錯誤提示信息就出來了。建立的幾個表都沒有關(guān)鍵字,設(shè)置好關(guān)鍵字后問題解決。

微軟的官方網(wǎng)站對此問題也有說明,BUG: 您可能會收到當(dāng)您嘗試使用 SQL Server Management Studio 更新 SQL Server 2005 中的表的行時 微軟給了個替代方法:要變通解決此問題,創(chuàng)建 SQL Server Management Studio 中的在新的查詢窗口。 然后,運行 SQL UPDATE 語句更新表中的行。

方法一:

1、單擊SQL  Server  Management Studio工具欄上的“新建查詢”按鈕,然后按照提示登陸要修改的數(shù)據(jù)表所在的數(shù)據(jù)庫

2、然后會在數(shù)據(jù)庫的編輯窗口彈出一個可以執(zhí)行SQL語句的窗口,在該窗口輸入以下SQL語句

delete      數(shù)據(jù)庫名.表名     where    要刪除的字段名 =     '字段值'

例如:delete pyj_db.dbo.Cellphone_related where Cellphone_Num = '111'

 


方法二:

其實利用INSERT INTO 做一些小的變換,這個問題就可迎刃而解了,具體步驟如下:

先將原用的表做個備份,根據(jù)條件將滿足條件的數(shù)據(jù)導(dǎo)到新的表來,再將原表清除,最后將備份表中的數(shù)據(jù)select過來即可。

第一步:在備份表中導(dǎo)入需要的數(shù)據(jù)

INSERT INTO DataFile_backup
select * from DataFile where year(consumedate)=條件

第二步:清除原表中的數(shù)據(jù)

Delete from DataFile

第三步:從備份表中導(dǎo)入數(shù)據(jù)

select * from DataFile

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多