现在正在做一个项目,在测试的时候重复添加到数据库表中很多数据,现在想要重新整理一下数据库,就是把重复的数据删除(当然不是全部删除,而是重复的数据至少要保留一条),该怎么做?
因为有多个表都需要重新整理,无法将表结构都写出来,请大家帮帮忙
唯一的共同点就是,这几张表中都有ID字段是自动增长列,也是主键
你的意思是再重新添加新的数据吗?还是怎样
追答比如,你的原始表有100条数据,其中重复的有若干条 表名为SOURCE
你就 Select Top 1 * FROM SOURCE INTO tempdb
DELETE * from Source
into into source select * from Tempdb..
大体就这样吧……。
这个sql语句都是错的,
修改了几次也没有成功,到底是该怎么做啊?
这个插入不了值啊
我在sql中执行了,报这个错,你帮忙看一下,谢谢了!
(0 行受影响)
消息 544,级别 16,状态 1,第 3 行
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'stu' 中的标识列插入显式值。
不要把ID也加入 标示行,或者,把IDENTITY_INSERT 设置为 ON 时
追问1>insert into stu (name) select name from stus Group by name就算是我这样写sql语句,也差不进去,虽然不报错,但是还是显示受影响行数为0
2>“把IDENTITY_INSERT 设置为 ON 时" 你说的这句话,应该在哪里设置IDENTITY_INSERT
select name intu tempStus from stus group by name having count(name)>1
这个tempStus表数据库里可以没有,因为这个句子会自动创建
用完此句式记得
drop table tempStus
还是不对啊,想你写的这样是只能插入name的值,id的值就插不进去。当我去添加列名id的时候,就又没有效果了
追答你的表唯一标识只有id 么?一般来说id是不可更新的,id是一种流水号
最好用别的关键字作为每一行的标识
id 是不可以随便更新的,