中国教程网《Photoshop专家讲堂》光盘热售参与论坛活动,快速赚取金币精品素材,中英文字体
 20 12
发新话题
打印

删除行

删除行


在SQL数据库表中有ID重复的行,当删除时出现以下信息,请问如何解决
附件: 您所在的用户组无法下载或查看附件,您需要注册/登录后才能查看!

TOP


这种警告就是说明这个纪录没有主键 [就是没有关键字]。在你删除有重复的纪录时他没有办法判断是哪一条!
建议删除所有重复信息,然后加上关键字!

怎么会写入没有关键字的纪录,你最好检查一下程序和数据库,治标再治本!

[ 本帖最后由 寅生 于 2006-3-28 09:03 AM 编辑 ]
快乐学习!

好的,谢谢

请问不设置主键可以吗,设置了主键就是自动编号了啊

主键不一定是ID呀,只要符合主键的要求都可以设置成主键
快乐学习!

在msdn上有人这样做也可以简单的解决这个问题,你可以备份数据库后作一下测试!

举例:如果member表出现上述情况

企业管理器----选择sql服务器----选择数据库[就是你出错的哪个数据库]---点企业管理器菜单里的“工具”----选择“SQL查询分析器”----打开后粘贴以下内容:
复制内容到剪贴板
代码:
select distinct * into #temp from member

truncate table member

insert member select * from #temp

drop table #temp
先点 “对号”   再点“执行”  完成了。
快乐学习!

在这里解释一下上面一段代码的含义:

第一句是说查询member表里的所有纪录然后把它们插入到临时表#temp中。select distinct的意义在于忽略重复,有重复的只显示一条纪录。这样#temp中的纪录就是没有“重复”这个问题的了!

第二句是删除刚才那个出问题的表member中的所有行

第三句把#temp中的所有纪录插入到表member中。

第四句删除表#temp

这样说应该很清楚了吧!

[ 本帖最后由 寅生 于 2006-3-28 11:42 AM 编辑 ]
快乐学习!

你的语句是怎么写的啊?

当用distinct检索独有列时,出现以下信息,是什么原因啊
服务器: 消息 8163,级别 16,状态 3,行 1
不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型。

数据库里有ntext类型数据

你把数据库的大致情况和你用的sql语句贴出来,让大家帮你分析分析
快乐学习!

表里有ID、标题小图标、标题、内容、相关信息,其中前两个是int数据类型,其它都是ntext数据类型,用的语句是
select distinct * into #temp from yyjs
truncate table yyjs
insert yyjs select * from #temp
drop table #temp
每个都是单独执行的,
当执行select distinct * into #temp from yyjs时就出现以上问题了,

[ 本帖最后由 yanguocheng 于 2006-3-28 04:06 PM 编辑 ]

你的重复内容都出现在哪些字段?
我给你换一个写法~

每条记录的标题小图标、相关信息都是一样的

相关信息是ntext类型的吗?
 20 12
发新话题