Sql Server表里面有2行数据完全一样,如何删除

Sql Server表里本来已经存在了一条数据,然后再添加同样的数据,居然添加成功了,如何删除其中的一行或者把2行全部删除?

Sql Server里面如果没有设定主键而删除重复数据很麻烦:
一:保留重复记录中的一条记录,其他全部删除。
--1:建立临时表,把不重复的数据转存
select distinct * into #Tmp from 表名;
--2:删除原表数据
truncate table 表名;
--3:将数据导回
insert into 表名 select * from #Tmp;
--4:删除临时表
drop table #Tmp;

二:删除全部重复记录:
delete from 表名 where 字段1=xxx,字段2=xxx....(把你重复记录的条件列在这里)

---
以上,希望对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-12
我遇到过这种情况,找了一个SQL语句:
select distinct * into #Tmp from Score
drop table Score
select * into Score from #Tmp
drop table #Tmp
上面语句可以把完全重复记录去掉。
还有个方法是在存储过程里直接执行delete语句,可以把完全重复记录删掉。
第2个回答  2009-06-12
可以查看所有然后查到的信息每一条付给一个对象,然后循环比较对象里的值,如果值相同则移除一个对象也就是所谓删除!
重要的不是代码 怎么写,最重要的是思路一定要清晰,其实电脑室最傻的~
第3个回答  2009-06-12
能添加成功说明没有UNIQUE约束
建议使用
select distinct * into new_table_name from old_table_name
drop old_table_name
然后把new_table_name修改成old_table_name,这个貌似用到sp_rename。。
第4个回答  2009-06-12
你的表中需要一单值索引键列或一个Identity的列比如ID
相似回答