关于记录的复制问题(50分)

  • 主题发起人 主题发起人 plwei
  • 开始时间 开始时间
P

plwei

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个表中想对符合条件的记录进行复制,记录的各个字段除
primary key 字段不同外其余字段完全相同,请问SQL语句怎样
写最好?(当然复制后的记录还是insert到该表当中)
 
用存储过程比较可行
sql很麻烦,而且不一定能做到
 
试试看,我在ADO下运行有些问题,DAO就没有任何问题:
对于主键的复制可适当修改一下:
procedure TForm1.Button3Click(Sender: TObject);
var i:integer;
ar:array of variant;
begin
SetLength(ar,table.fieldcount);
//复制当前记录
for i:=0 to table.fieldcount-1 do
ar:=table.fields.Value;
table.append;
//将复制的记录粘贴到新记录中
for i:=0 to table.fieldcount-1 do
table.Fields.Value:=ar;
Table.Post;
end;
 
写个存储过程吧,我也遇到过这个问题。不过我写的是对一条记录复制,如果是多条,
可以多执行几遍。可能有更好的办法。

CREATE procedure CopyR
@TableName sysname,
@FieldName sysname,
@Value sysname,
@NewValue sysname
As
declare @Str sysname
select @str='Select * into temp1 from '+@TableName+' where '+@FieldName+'='+''''+@Value+''''
exec (@str)
select @Value=@Value+'a'
select @str='update temp1 set '+@FieldName+'='+''''+@NewValue+''''
exec (@str)
Select @str='insert into '+@TableName+' select * from temp1'
exec (@str)
Select @str='drop table temp1'
exec (@str)

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