你可以,重新排序插入到另外一个表
INSERT INTO 表名
SELECT * FROM 旧表

解决方案 »

  1.   

    旧表如何排序完重新建一个新表?SELECT *  into newtable FROM oldtable order by id
    这个我行不通,你说的那个INSERT INTO 表名
    SELECT * FROM 旧表,我也不会弄
      

  2.   

    --建立一样的表结构的空新表
    SELECT TOP 0 * INTO 新表 FROM 旧表
    --开始加数据
    INSERT INTO 新表
    SELECT * FROM 旧表
    ORDER BY 排序字段类似这样
      

  3.   

    我指的乱是EXCEL里有一列ID,是按照1、2、3排列的,但导入到SQl server中时,就变成2、3、1了
      

  4.   

    --建立一样的表结构的空新表
    SELECT TOP 0 * INTO 新表 FROM 旧表
    --开始加数据
    INSERT INTO 新表
    SELECT * FROM 旧表
    ORDER BY CAST(ID AS INT)可能你的ID是字符串,你可以在插入时当INT排序还有如果你想看表的顺序怎么样,直接SELECT * FROM 新表,看到的顺序是不准确的,无序表扫描不一定会按插入的顺序查数据
      

  5.   

    按照这个语句执行后--建立一样的表结构的空新表
    SELECT TOP 0 * INTO 新表 FROM 旧表
    --开始加数据
    INSERT INTO 新表
    SELECT * FROM 旧表
    ORDER BY CAST(ID AS INT)
    ID还不是1、2、3
      

  6.   

    --建立一样的表结构的空新表
    SELECT TOP 0
    IDENTITY(INT,1,1)AS ID
    ,除ID的其他列
    INTO 新表
    FROM 旧表--开始加数据
    INSERT INTO 新表
    SELECT 除ID的其他列 FROM 旧表
    ORDER BY CAST(ID AS INT)
      

  7.   

    解决了,分布式查询: USE [master]      
    GO      
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1      
    GO      
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1      
    GO  
    exec sp_configure 'Ad Hoc Distributed Queries',1
    RECONFIGUREexec sp_configure 'show advanced options', 1
    reconfigureexec sp_configure 'Ad Hoc Distributed Queries', 1
    reconfigureUSE 充值记录     
    GO      
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1      
    GO     select * into 新老用户$ from OPENDATASOURCE('Microsoft.Ace.OleDb.12.0','Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="E:\新老用户.xlsx"' )...[新老用户$]