如表tblA:ID   value
123  AAA
124  BBB
135  CCC
158  DDD表tblB
ID   value现在希望通过一个语句把tblA中的记录插入tblB中,要求tblB中的ID为指定的起始值(如70000),自增1.
注意:tblB并没有把ID列设置为自动自增,需要用语句实现自增。希望得到的效果:
表tblB
ID     value
70000  AAA
70001  BBB
70002  CCC
70003  DDD

解决方案 »

  1.   

    create table tblB(ID int identity(70000,1),value varchar(6))
      

  2.   

    create table tblA(ID int,value varchar(6))
    insert into tblA select 123,'AAA'
    insert into tblA select 124,'BBB'
    insert into tblA select 135,'CCC'
    insert into tblA select 158,'DDD'create table tblB(ID int identity(70000,1),value varchar(6))
    goinsert into tblB select [value] from tblAselect * from tblB
    /*
    ID          value  
    ----------- ------ 
    70000       AAA
    70001       BBB
    70002       CCC
    70003       DDD
    */
    godrop table tblA,tblB
    go
      

  3.   

    to libin_ftsafe(子陌红尘) 
       不是我想要的,要注意tblB已经存在,且ID没有(也不允许)设置为自增,所以必须通过语句实现自增
      

  4.   

    create table tblA(ID int,value varchar(6))
    insert into tblA select 123,'AAA'
    insert into tblA select 124,'BBB'
    insert into tblA select 135,'CCC'
    insert into tblA select 158,'DDD'create table tblB(ID int,value varchar(6))
    goinsert into tblB select (7000+isnull((select count(*) from tblA where ID<t.ID),0)),[value] from tblA tselect * from tblB
    /*
    ID          value  
    ----------- ------ 
    70000       AAA
    70001       BBB
    70002       CCC
    70003       DDD
    */
    godrop table tblA,tblB
    go
      

  5.   

    create table tblA(ID int,value varchar(6))
    insert into tblA select 123,'AAA'
    insert into tblA select 124,'BBB'
    insert into tblA select 135,'CCC'
    insert into tblA select 158,'DDD'
    create table tblB(ID int,value varchar(6))
    go
    insert into tblB 
    select 7000+(select count(1) from tblA where ID<t.ID),[value] from tblA t 
    order by t.idselect *from tblb
    drop table tblA,tblB
    go
      

  6.   

    create table tblB(ID int identity(70000,1),value varchar(6))