如何更新这样的记录?(200分)

  • 主题发起人 主题发起人 meiyi
  • 开始时间 开始时间
M

meiyi

Unregistered / Unconfirmed
GUEST, unregistred user!
有一表:

AA BB CC

1 xx x1
2 yy x2
3 zz x3

......

要求:
编历一次表把 CC 字段中的 x1=随机数据1,x2=随机数据2,x3=随机数据3......
用 SQL 语句如何更新呢?
 
一条一条更新.
 
我不太明白题意.
while not QAABBCC.EOF do
begin
QUpdate.Close; //统计人数
QUpdate.ParamByName('AA').value:=QdNo.FieldByName('AA').value;
QUpdate.ParamByName('pdates').value:=随机数据;
QUpdate.ExecSQL;

QAABBCC.Next;
end; // while not dm.Qclass.EOF do
 
AGREE ANOTHER_EYE.
你的要求应该是个临时的工作,写一个小程序来做吧!
 
只能一条一条的更新,如果要提高效率的话,可写一个存储过程。
 
一条一条的更新。
 
各位大虾:
一条一条的更新是否太慢(如记录在10000条以上),
能否有最佳方案?
俱体点好吗?
(200分送给你哟)
 
update AABBCC
set cc=随机数据
 
>>lyd_2000 你那么做好像是所有的记录 字段CC的内容都将一样。
 
我觉得只能这样做了,或者 把数据表的字段都设为唯一的.然后再建一个临时结构相同的
表,最后用batchmove控件,就行了.batchmove控件不会用?晕倒!太简单了
 
用三次行吗:
update tabel1
set cc=rnd2
where cc=x1
update tabel1
set cc=rnd2
where cc=x2
update tabel1
set cc=rnd3
where cc=x3
 
已经发信给你了!!!
 
while not tablename.eof then
begin
with query1 do
begin
close;
sql.clear;
sql.add('select cc from tablename');
parambyname('cc').value:=random(10000);
open;
end;
next;
end;
 
gerry yang的方法好象总是赋值给第一条记录。而且是死循环。
我觉得如果用了TDATABASE的话只用一次就提交了。
如果没用TDATABASE就只能一条条提交了。
 
最好使用存储过程,只要调用一次,所有的操作让SQL server去做
 
Jamw and Lyr:
能否给一实例呢?
谢谢!!!

 
多人接受答案了。
 
后退
顶部