sqlserver中多行所有数据重复,无法更新或删除问题,通常是在没有主键的情况下的表.
错误:
先确认一下表中有没有主键,要是没有就得使用临时表来实现删除重复的行。
方法一:
DELETE FROM 表名 WHERE 主键字段名 IN(
SELECT MAX(主键字段名) AS 主键字段名 FROM 表名 GROUP BY 其他字段 HAVING COUNT(1)>1)
方法二:
SELECT 字段列表 INTO #T FROM 表名 GROUP BY 字段列表
--先删除原来的数据表,再插入不重复的语句
TRUNCATE TABLE 表名
INSERT INTO 表名 SELECT * FROM #T
DROP TABLE #T
错误:
先确认一下表中有没有主键,要是没有就得使用临时表来实现删除重复的行。
方法一:
DELETE FROM 表名 WHERE 主键字段名 IN(
SELECT MAX(主键字段名) AS 主键字段名 FROM 表名 GROUP BY 其他字段 HAVING COUNT(1)>1)
方法二:
SELECT 字段列表 INTO #T FROM 表名 GROUP BY 字段列表
--先删除原来的数据表,再插入不重复的语句
TRUNCATE TABLE 表名
INSERT INTO 表名 SELECT * FROM #T
DROP TABLE #T