怎样删除重复记录中的一条?

shohoku_11 2003-05-11 09:33:01
表中有重复的两条记录,没有设置任何键、约束、索引,用企业管理器选中一条记录并删除时,系统提示键列信息不足,如果用查询分析器删除,则必须同时删除重复记录,能有办法用企业管理器删除其中的一条记录吗,有办法区分吗?
...全文
96 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shohoku_11 2003-05-11
  • 打赏
  • 举报
回复
好了,谢谢各位!
_西瓜皮_ 2003-05-11
  • 打赏
  • 举报
回复
不好意思,看来我的方法很笨了。显丑了~~~~...
_西瓜皮_ 2003-05-11
  • 打赏
  • 举报
回复
在表中加一个字段为Bigint或int型的字段,关键看你的记录多不多,多的用bigint,
不多则可用int型,然后把他的标识改为是,标识种子和标识递增量分别为1,
这是SQL server2000的做法。

在SQL server7.0的做法
加一个字段,选中字段中的identity即可。

这样保存后在数据库中就会自动生成不重复的数,你就可以用VB控制删除那些重复的记录了。
CrazyFor 2003-05-11
  • 打赏
  • 举报
回复
select col1,col2..... into #temp from table group by col1,col2....
truncate table
insert into table select * from #temp
shohoku_11 2003-05-11
  • 打赏
  • 举报
回复
可是这样比较繁琐,不是吗?难道SQL中没有默认的索引值来区分这两条记录吗〉
愉快的登山者 2003-05-11
  • 打赏
  • 举报
回复
select distinct * into #t from yourtable
go
delete yourtable
go
insert into yourtable select * from #t
go
pengdali 2003-05-11
  • 打赏
  • 举报
回复
或:

select distinct * into #temp from 表
truncate table 表
insert 表 select * from #temp
drop table #temp
pengdali 2003-05-11
  • 打赏
  • 举报
回复
alter table 表 add newfield int identity(1,1)

delete 表
where newfield not in(
select min(newfield) from 表 group by 除newfield外的所有字段
)

alter table 表 drop column newfield

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧