问题:自动ID值是否保留,我理解你的意思是保留,对吗?
自动ID值是累加(默认),当删除记录时,删除记录的ID值也不会再被使用,如果想在新表中
使用的自动增量ID字段记录的值等于源表自动增量ID字段记录的值,需要逐条操作,而不是
sql语句,
假设源表记录共有4条
源表.id(identity)
003
005
007
008
如果实现新表.ID(identity)=源表.id(identity),又因为identity类型的字段不能赋值,所以
实现
新表.id(identity)
003
005
007
008
如下:
adotable1.open;source table
adotable2.open;new table
int_crease:integer;
rcount:=table1.recordcount;
for i:=1 to rcount do
begin
adotable2.open;
adotable12.moveby(i);
int_crease:=adotable2.fieldbyname('id').asinteger;
while adotable1.fieldbyname('id').asinteger<>Int_crease-1 do
begin
adotable2.insert;//插入无用空记录
adotable2.last;//移动记录道末尾
adotable2.delete;//删除末尾记录,以上三步实现新表ID自动增加;
int_crease=adotable2.fieldbyname('id').asinteger;
end;
adotable2.next
end;
其实设置为ID的字段,如果没有外键根本没有必要保留该值到新表中;
写完废话连篇,没什么价值,或许我没理解你的意思,