请关注呀! 急!!!! (100分)

  • 主题发起人 主题发起人 itprogram
  • 开始时间 开始时间
I

itprogram

Unregistered / Unconfirmed
GUEST, unregistred user!
也许我没说清,我的意思是‘比如:在一个物料领料单中连续输入两个一样的记录时,若删
除其中一个时是删不掉的。总是出现’多重记录出现.....’的提示.
 
用SQL语句来删
delete tablename where 条件
条件正好能框定重复的那些记录。
 
我的意思是怎样控制这个表能让他出现重复的记录并且也可以用DELETE的方法去删除重复的
每一个记录
 
也许我没说清,我的意思是‘比如:在一个物料领料单中连续输入两个一样的记录时,若删
除其中一个时是删不掉的。总是出现’多重记录出现.....’的提示.
 
1、好象没有办法只删除重复中的一条记录而留下另一条
2、给表建主键,避免重复记录被存入数据库
 
你两个记录肯定不是完全一样吧,用delete语句删除,选定该记录用where子句.
 
在没有主键的情况下好象两条内容完全一样的记录才能认为是重复记录吧?
 
物料领单两条记录肯定不应该完全相同的,建议用主键.
 
其实这种情况应该会出现的呀!比如数量为2个,我可以一个一个的输入嘛!
我用创建index
CREATE CLUSTERED INDEX mycolunm_index ON mytable(colunm) WITH ALLOW_DUP_ROW
 但是 ALLOW_DUP_ROW又不被支持!
 
两个记录是完全一样的。这种情况应该会出现的呀!
 
领料单号和编号、日期、数量等都是一样的。
 
如果确实有两条一样的记录,又只想删除一条的话,可以先用FindFirst,然后delete,不一
定所有操作都非要用SQL执行啊

 
同意楼上,可以用findfirst或locate先定位到符合条件的第一条记录,然后delete!
 
itprogram 已经说了,这样删除回出错,是册不掉的。
 
在SQLSERVER中有‘TIMESTAMP’类型,他是行标示符,确定行的唯一性,可以设置
一个这样的字段,把他设为关键字,你就可以删除重复记录了。别忘了留一个。
建议:不要把数据库设计为可以存在重复纪录的方式。那不规范。
注:其它数据库也有解决办法,与上面类似,只要保证行的唯一性就行。这更进一步
证明了我的建议。
 
补充:你不会忘了设置领料单号吧?用他作关键泽也可以的。
总之你的错误信息说明了你没设关键字。那不是好习惯。
 
总的说来,你必须设定主键,即使从外表看不出来,也要在内部设定一个额外主键,
这样问题就迎刃而解
 
我建议你先找出所有符合条的所有相同纪录,当然还的把其rowid 字段找出来,这样你就可以留住一条而把其他相同的纪录删除了。
 
你是做ERP吧,什么行业的?
 
如果你非要用SQL语句来实现的话,你只有使用存储过程,配合游标使用,定位到记录的指定行,之后
进行删除.
 
后退
顶部