求助:一个表数据移动到另一个表
表A字段:id(主键),Aname,Bname,C;
表B字段:id(主键),Aname,Bname,D,F;
我现在用俩个TADOQuery1,TADOQuery2 和显示到DBgrid1,DBgrid2
现在想实现这样功能:
表A一条数据移动到表B 表A中id与表B中的id相同则在表B中的最后一条记录的id号加一,表B其他如有相同字段则直接从表A拷贝到表B,没有的字段表(如表B中的D,F)则显示为空,移动完成之后把表A中的这条数据删除掉
请问该怎么做 ?新人刚接触数据库,理解不到位请大家多指教,谢谢!
[解决办法]
declare @ID integer
declare @MaxID integer
select @MaxID = max(ID) + 1 from B
select @ID = ID from B where ID = A.ID(查询表A中ID的条件语句)
if ( @ID is null)
begin
set @ID = @MaxID
end
insert into B (ID, Aname,Bname) select @ID, Aname,Bname from B where B.ID = A.ID(查询表A中ID的条件语句)
将以上语句组成字符串,供一个ADO执行即可。
建议:
一、如果不确定字段列表,可以使用查询字段列表的方式,先获取B表中的字段列表,再依次循环比对A中的字段列表,然后组成SQL语句进行执行。
二、强烈建议,插入数据时,不要再使用原来的主键ID,如果万一不小心,造成主键数据混乱,将是很麻烦的一件事情,可以使用自动编号类型,让数据库自动创建。
[解决办法]
[解决办法]
我怎么看不懂问题,楼主要的是后台实现还是前台实现? 最好举例几笔数据出来看看?
[解决办法]
看不太明白,举个例子吧,容易看懂