国产老熟女高潮毛片A片仙踪林,欧美喂奶吃大乳,狠狠爱无码一区二区三区,女神的私人医生动漫免费阅读

新聞建站cms系統、政府cms系統定制開發

廣州網站建設公司-閱速公司

asp.net新聞發布系統、報紙數字報系統方案
/
http://m.tjsimaide.com/
廣州網站建設公司
您當前位置:首頁>sqlserver數據庫

sqlserver數據庫

SQL Server表中刪除具有重復主鍵標識列的重復行

發布時間:2024/5/26 21:11:02  作者:Admin  閱讀:96  

廣告:

示例:表名為test,主鍵列為id,另外一列為name
注意:如果使用 insert和select聯合語句,需要將id列標識列臨時去掉。之后要還原。

--插入重復行到臨時表
SELECT DISTINCT *
INTO temp_table
FROM test
GROUP BY id,name
HAVING COUNT(id) > 1
go
--如果提示選擇列表中的列 'test.name' 無效,因為該列沒有包含在聚合函數或 GROUP BY 子句中。則 GROUP BY id 改為GROUP BY id,name
go

--刪除原表重復行所有數據(重復兩行都會刪掉) 
DELETE test
WHERE id
IN (SELECT id
FROM temp_table)
go 

--還原數據。如果使用 insert和select聯合語句,需要將id列標識列臨時去掉
INSERT test
SELECT *
FROM temp_table
go
--刪除臨時表
DROP TABLE temp_table 

多列:

--查詢是否存在重復的數據
dbcc checktable('pos_t_saleflow_pre')
select flow_no, flow_id
from pos_t_saleflow_pre
group by flow_no, flow_id
having count(1) > 1

--刪除表中重復的數據
while exists(select flow_no, flow_id
from pos_t_payflow_pre
group by flow_no, flow_id
having count(1) > 1)
begin
set rowcount 1
delete a
from pos_t_payflow_pre a
inner join (select flow_no, flow_id
from pos_t_payflow_pre
group by flow_no, flow_id
having count(1) > 1) b on a.flow_no = b.flow_no and a.flow_id = b.flow_id
set rowcount 0
end

附加:

手動插入數據

SET IDENTITY_INSERT [dbo].[test] ON --如果表有 IDENTITY 列,則在將數據還原到原始表時,必須使用 SET IDENTITY_INSERT ON。[dbo].[test]后面加.不是dbo.test
INSERT [dbo].[test] ([id], [name]) VALUES (12, N'454545')
SET IDENTITY_INSERT [dbo].[test] OFF

提示:僅當使用了列列表并且 IDENTITY_INSERT 為 ON 時,才能為表'test1'中的標識列指定顯式值。
解決:如果使用insert和select聯合語句,需要將原表id列標識列臨時去掉。數據還原后再手動設計還原為標識列字段。

廣告:

相關文章
SQL Server
刪除重復行
cms新聞系統購買咨詢
掃描關注 廣州閱速軟件科技有限公司
掃描關注 廣州閱速科技
主站蜘蛛池模板: 镇康县| 湄潭县| 江都市| 德化县| 信阳市| 横峰县| 平阴县| 鄂托克前旗| 无为县| 苏州市| 濮阳市| 黄石市| 明水县| 无极县| 泊头市| 曲水县| 禹州市| 香河县| 西盟| 工布江达县| 甘泉县| 南澳县| 汝阳县| 四子王旗| 襄垣县| 高州市| 芦溪县| 时尚| 新密市| 贡觉县| 天水市| 鱼台县| 临高县| 正宁县| 卢氏县| 大竹县| 郎溪县| 潜江市| 光泽县| 项城市| 镇平县|