sql中如何去掉一条记录?
6个回答
展开全部
如果所用的数据库是 Microsoft SQL Server的话,对于这种所有字段完全相同的数据记录,是无法做到只删除一条的,因为数据库无法定位这些相同的记录中的某一条!
所以,如果执行删除的话,只有两种可能(具体看你所使用的SQL查询工具了):1)报错,无法删除,比如在SQL企业管理器中直接选中数据并做删除操作;2)相同的记录全部删除,比如用SQL查询分析器。
那么楼主的问题要如何解决呢,思路是这样:
1)去掉重复的:
select distinct * into #tmp from [tablename] --将唯一性记录写入临时表
delete from [tablename] --将原表数据清空(最好先备份一下原数据表)
insert into [tablename] select * from #tmp --从临时表将数据插回
2)如果一定要数据重复,那请修改表[tablename]结构,增加一个[ID]字段,并让它自动增长,以便将相同记录区分开来。然后将需要重复的记录用如下语句重复插入:
insert into [tablename] (字段列表-不包含那个ID字段)
select (字段列表-不包含那个ID字段)from [tablename] where [ID]=XXXX (注:XXX是事先查到的需要重复的记录ID字段值)
GoodLuck!
请采纳答案,支持我一下。
所以,如果执行删除的话,只有两种可能(具体看你所使用的SQL查询工具了):1)报错,无法删除,比如在SQL企业管理器中直接选中数据并做删除操作;2)相同的记录全部删除,比如用SQL查询分析器。
那么楼主的问题要如何解决呢,思路是这样:
1)去掉重复的:
select distinct * into #tmp from [tablename] --将唯一性记录写入临时表
delete from [tablename] --将原表数据清空(最好先备份一下原数据表)
insert into [tablename] select * from #tmp --从临时表将数据插回
2)如果一定要数据重复,那请修改表[tablename]结构,增加一个[ID]字段,并让它自动增长,以便将相同记录区分开来。然后将需要重复的记录用如下语句重复插入:
insert into [tablename] (字段列表-不包含那个ID字段)
select (字段列表-不包含那个ID字段)from [tablename] where [ID]=XXXX (注:XXX是事先查到的需要重复的记录ID字段值)
GoodLuck!
请采纳答案,支持我一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果所用的数据库是 Microsoft SQL Server的话,对于这种所有字段完全相同的数据记录,是无法做到只删除一条的,因为数据库无法定位这些相同的记录中的某一条!
所以,如果执行删除的话,只有两种可能(具体看你所使用的SQL查询工具了):1)报错,无法删除,比如在SQL企业管理器中直接选中数据并做删除操作;2)相同的记录全部删除,比如用SQL查询分析器。
那么楼主的问题要如何解决呢,思路是这样:
1)去掉重复的:
select distinct * into #tmp from [tablename] --将唯一性记录写入临时表
delete from [tablename] --将原表数据清空(最好先备份一下原数据表)
insert into [tablename] select * from #tmp --从临时表将数据插回
2)如果一定要数据重复,那请修改表[tablename]结构,增加一个[ID]字段,并让它自动增长,以便将相同记录区分开来。然后将需要重复的记录用如下语句重复插入:
insert into [tablename] (字段列表-不包含那个ID字段)
select (字段列表-不包含那个ID字段)from [tablename] where [ID]=XXXX (注:XXX是事先查到的需要重复的记录ID字段值)
GoodLuck!
希望对你能有所帮助。
所以,如果执行删除的话,只有两种可能(具体看你所使用的SQL查询工具了):1)报错,无法删除,比如在SQL企业管理器中直接选中数据并做删除操作;2)相同的记录全部删除,比如用SQL查询分析器。
那么楼主的问题要如何解决呢,思路是这样:
1)去掉重复的:
select distinct * into #tmp from [tablename] --将唯一性记录写入临时表
delete from [tablename] --将原表数据清空(最好先备份一下原数据表)
insert into [tablename] select * from #tmp --从临时表将数据插回
2)如果一定要数据重复,那请修改表[tablename]结构,增加一个[ID]字段,并让它自动增长,以便将相同记录区分开来。然后将需要重复的记录用如下语句重复插入:
insert into [tablename] (字段列表-不包含那个ID字段)
select (字段列表-不包含那个ID字段)from [tablename] where [ID]=XXXX (注:XXX是事先查到的需要重复的记录ID字段值)
GoodLuck!
希望对你能有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询