如何更新重复的记录 ( 积分: 100 )

  • 主题发起人 主题发起人 linghe
  • 开始时间 开始时间
L

linghe

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说有某个表T,有多条完全相同的记录,<br>我要更改某一条记录时不会影响其他条记录,请问该如何处理?现在每次更新时总是提示这样的错误<br>&quot;键列信息不足或不正确,更新影响到多行&quot;<br>我是用ADOQUERY连接SQLSERVER2000数据库的,因特殊的原因不能设置主键,也没有什么自动增加的列,请问可以做到上面的要求吗?
 
没有办法<br>必须要主键啊
 
可能有字段约束
 
應該不行吧,在oracle中還有個rowid可以區分一下,sqlserver好像不行,或者你加多個自增的字段做主鍵,在辦面上不顯示出來就行啦,要不你就把相同的記錄變為一條,不過這好像要先distinc插入弄到個臨時表中,然后再插入到表中才能實現
 
没办法,DELETE&nbsp;FROM&nbsp;只能把这些记录全部删除,除非有一个自增字段来区别,你可以先加自增字段,然后再删除一条.
 
因我做的这个程序由连接到不同的数据库,一种数据库是SQLSERVER2000,别一种是DBASE数据库.我现在用的是ADO控件连接就会出现这们的问题.但是用ADSTABLE控件更新相同的记录时就不会出问题,但是关于ADS控件我又不熟,<br>有熟悉ADS控件(ADSCONNECTION,ADSTABLE,ADSQUERY,ADSSETTING)的吗?进来介绍一下或者提供一些帮助的资料,非常感谢!
 
删除重复记录,插入更新记录
 
建#table,更新#table自增列字段,作处理后倒回,drop#table
 
这就是数据库表的结构定义没有定义好啊,没有经验是这样的,我能理解!
 
to&nbsp;ycluo:<br>&nbsp;&nbsp;只因公司以前旧的程序(CLIPPER语言写的)连接的是一种很老的DBASE数据库,这种数据库是没有设置主键这个功能的,造成了现在出现很多相同的但是又有不同用处的记录.现在公司用DELPHI在开发一套新的系统来代替旧的程序,要求数据同时插入或更新DBASE数据库和SQLSERVER数据库.<br>所以才会出现更新有相同的记录时会出错的问题.
 
欢迎加入新起点群,群号(37792189),本群为DELPHI与SQL&nbsp;SERVER&nbsp;为主,<br>当然群里也有其它方面的专业人员<br>如(asp.net(C#),java等),现在程序员都不只学一门语言的哈,<br>本群是以一门程序语言为主打,多种语言为基点学习的群.<br><br>本群主要功能:<br>&nbsp;&nbsp;1:积极的讨论各种技术;<br>&nbsp;&nbsp;2:让你能结交更多的朋友,学习到更多先进的技术;<br>&nbsp;&nbsp;3:在你无聊的时候,群里更可以什么都聊聊(但得注意素质);<br>&nbsp;&nbsp;<br>为了提高群的人上线要求;如果你有Q币的话,希望能够为群做一些贡献,并有机会成为本群的管理员.
 
完全相同的行,那怎么行,怎么都得加个主键啊&nbsp;或者&nbsp;Unique
 
to&nbsp;liuguilg:<br>&nbsp;&nbsp;可是以前的那个DBASE数据库是不能设置主键呀.
 
to&nbsp;linghe<br><br>报错是因为SQL里面有相同数据,不是因为DBASE。<br>DBASE本身不用设置主键,删除完全相同的记录中的一条都不会出错,因为它本身有RecNo,而SQL没有。<br><br>建议(同楼上)SQL那边增加自增列字段。
 
to:jenhon<br>&nbsp;&nbsp;&nbsp;dbase数据库情况正如你所说的一样.现我打算在DBASE修改后,再将SQLSERVER数据库的记录删除掉以后再增加.这样也不会有问题.但是如果用ADO控件连接DBASE数据库时修改有相同的记录还是会有问题,如果改用ADS控件就不会有问题了,但是关于ADS控件小弟知之其少,请问这位大虾有关于ADSCONNECTION,ADSQUERY,ADSTABLE等控件的资料吗?如果有可否发给我一份?<br>linghe1@163.com.<br>先谢了!
 
水平不够,只能帮你顶了。
 
幫頂一下。
 
后退
顶部