小菜鸟求教!我现在做了一个小程序,想添加一个复制功能。数据库使用的SQL SERVER
点击按钮后,adoquery1添加什么语句,可以使表TAB1中的数据1,
ID NAME P1 P2 P3 P4
1  abc  1   2  3  4ID=1的那条数据复制成为
ID NAME P1 P2 P3 P4
1  abc  1   2  3  4
2  abc  1   2  3  4其中ID为主键

解决方案 »

  1.   


    insert TB(NAME P1 P2 P3 P4)
    select NAME P1 P2 P3 P4 from ID=1
      

  2.   

    修正一下:insert tb(Name, p1, p2, p3, p4) 
    select Name, p1, p2, p3, p4 from tb where ID = 1
    tb代表你的数据表名
      

  3.   

    你的主键是 IDENTITY 自增类型吗,如果是的话,上面的SQL语句就是对的。
    如果不是的,那你主键应该插入什么样的值?
      

  4.   

    将你的数据表的ID字段设为自增型,增量为1,
    然后执行:
    insert tb(Name, p1, p2, p3, p4) 
    select Name, p1, p2, p3, p4 from tb where ID = 1
    就行了
      

  5.   

    那如果我只希望ID=2呢?请问如何写程序。
    还有就是在SQL SERVER中如何设置数据表字段为自增型,增量为1。
    问题较多,把分加了!
      

  6.   


    這樣是做不到的。
    例如你有10條記錄,ID分別是1到10,如果你選擇的是第5條記錄,那麼你希望新的ID是6,已經在DB中存在了,主鍵不能重複,所以操作失敗!
    如果ID是自增的,2樓正解;如果不是:找到最大的IDselect max(id) from tb然後insert tb(Name, p1, p2, p3, p4) 
    select Name, p1, p2, p3, p4 from tb where ID = 1
      

  7.   

    insert tb(ID,Name, p1, p2, p3, p4) 
    select "maxid",Name, p1, p2, p3, p4 from tb where ID = 1maxID是剛查詢得到的最大的ID,修正13樓的SQL。
      

  8.   


    楼主 看来是没有学过SQL
      

  9.   

    现在我不需要什么找最大的了,我就是希望复制后,那条记录的ID=2,用什么SQL语言啊?菜鸟一只,请赐教!
      

  10.   

    insert tb(ID,Name, p1, p2, p3, p4) 
    select 2,Name, p1, p2, p3, p4 from tb where ID = 1
    不就行了吗
      

  11.   

    insert tb(ID,Name, p1, p2, p3, p4)  
    select ID+1,Name, p1, p2, p3, p4 from tb where ID = 1
      

  12.   

    根据ID建序列,然后取序列.ID就会自动增长