一个表.字段和记录是这样的。ID 是自编号.id  smid  name  address  sex  no ......
1    1     张一   ...     ...  ..
2    1     张二   ...     ...  ..
3    1     张三   ...     ...  ..
4    1     张四   ...     ...  ..
5    1     张五   ...     ...  ..
6    3     张五   ...     ...  ..
7    3     张五   ...     ...  ..
..
10   1    ........................现在想这个表中所有smid=1的记录复制出来。
再粘贴进去 同时把smid改为2.请问高手有没有最好的办法。。
最简单的办法。。
一条一条的操作比较烦。。
谢谢。
回答对了的。
马上给分。
主要要求简单!

解决方案 »

  1.   

    select * from db where smid=1 
    ...with query1 do
      begin
        for i= 1 to query1.count do
        begin
        edit;
        fieldbyname('smid').value:=2;
        post;
        next;
        end;
      end;
      

  2.   

    table1.filter:='smid=1';
    table1.filtered:=true;
    table1.open;
    table1.edit;
    for i:= 0 to table1.count-1 do
    begin
      table1['smid']:=2;
      table1.next
    end;
    table1.post;
      

  3.   

    对了说一下。
    数据库是SQLSERVER的。谢谢!
      

  4.   

    select smid,name,address,sex,no, ...... into 表 where (smid = 1)update 表 set smid = 2 where (smid = 1) and (id > 5)//-----------------------
    还要受表的定义的限制
    估计不可以
    只是主观臆断
    试试看吧,我发现你和我差不多懒
    呵呵
      

  5.   

    select * from tab1 as temptab where tab1.smid = 1
    update temptab set temptab.smid = 2
    insert into tab1 select * from temptab
    drop table temptab老实说只用一句我实现不了......可以借助一个临时表,当然最开始得时候判断一下这个临时表是否存在更合适。
      

  6.   

    干吗复制出来,又添加进去,直接在数据库中修改不行吗
    update tablename set smid=2 where smid=1
      

  7.   

    支持创建临时表的至于ID你只要在临时表创建的时候不把它放进去不SELECT它然后
    UPDATE原来的表自动产生就完了
      

  8.   

    一句搞定:insert 一个表 select 2,name,address,sex,no,.... from 一个表 where smid=1
      

  9.   

    或:insert 一个表 (smid,name,address,sex,no,....) select 2,name,address,sex,no,.... from 一个表 where smid=1