各位大大,现在我有两张表 A(id,code,name) B(id,code,name) 两张表的id列都是不为空的自增列
使用insert into B(code,name) select code,name from A 之后
为什么插入B的数据顺序与A的数据顺序不同呢

解决方案 »

  1.   

    insert into B(code,name) select code,name from A order by id
      

  2.   

    如果想将a的id插入到b中,打开SET IDENTITY_INSERT 选项,
    如想指定数据存储的顺序,在插入时指定order by 
      

  3.   

    我这儿是一样的  sql server 2008 R2CREATE TABLE #A(id INT IDENTITY(1,1),code INT,NAME VARCHAR(10))
    GOINSERT INTO #A(code,name)
    SELECT 123,'A'
    UNION ALL
    SELECT 456,'B'
    UNION ALL
    SELECT 789,'C'CREATE TABLE #B(id INT IDENTITY(1,1),code INT,NAME VARCHAR(10))
    GOinsert into #B(code,name) 
    select code,name from #A
    SELECT * FROM #A
    /*
    id code NAME
    1 123 A
    2 456 B
    3 789 C*/SELECT * FROM #B
    /*
    id code NAME
    1 123 A
    2 456 B
    3 789 C*/DROP TABLE #A
    DROP TABLE #B
      

  4.   

    DBCC CHECKIDENT (A,RESEED,新的起始值)DBCC CHECKIDENT (B,RESEED,新的起始值)
      

  5.   

    select 出来的顺序 不是它内部存储的顺序
      

  6.   

    存储是按照物理地址排序 查询的时候不加ORDER BY 也是按照物理地址排序所以要按照顺序排列 需要ORDER BY排序。 这样才是按照逻辑排序。
      

  7.   

    你查询的时候order by一下
    他插入的顺序没关系