非常困惑的问题:gl_accvouch 有7000条记录,我需要建立的表和原来一样的顺序,cx_crm.dbo.bbdc_accvouch 结果好多次顺序几乎不一样,也有正确的
1.select * into cx_crm.dbo.bbdc_accvouch from ufdata_001_2007.dbo.gl_accvouch order by my_id2.删除表 cx_crm.dbo.bbdc_accvouch 再执行1. 的语句 结果和第一次数据的顺序就变了,原始 ufdata_001_2007.dbo.gl_accvouch是我整理好的数据,为什么拷贝到cx_crm.dbo.bbdc_accvouch 顺序就变了,3,为什么删除一次在执行语句结果都不一样那?4. CREATE TABLE [bbdc_accvouch] (
[凭证号] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[客户] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[客户名称] [varchar] (120) COLLATE Chinese_PRC_CI_AS NULL ,
[摘要] [varchar] (60) COLLATE Chinese_PRC_CI_AS NULL ,
[单据类型] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[单据号] [varchar] (30) COLLATE Chinese_PRC_CI_AS NULL ,
[本期应收本币] [money] NULL ,
[本期收回本币] [money] NULL ,
[余额本币] [money] NULL ,
[id] [int] NULL ,
[dRDate] [datetime] NULL ,
[MYid] [int] IDENTITY (1, 1) NOT NULL ,
 PRIMARY KEY  CLUSTERED 
(
[MYid]
)  ON [PRIMARY] 
) ON [PRIMARY]
GO

解决方案 »

  1.   

    用友数据库凭证表gl_accvouch中的i_id字段是自动编号的标识列,可以根据标识列排序试试:
    truncate table cx_crm.dbo.bbdc_accvouch
    select * into cx_crm.dbo.bbdc_accvouch from ufdata_001_2007.dbo.gl_accvouch order by i_id 
      

  2.   

    谢谢,我的表名是我自己建的,没有用用友的表,      if exists(select 1 from sysobjects where name='BBDC_AP_Mxc' And xtype='U') drop table BBDC_AP_Mxc    
                
          select * into  BBDC_AP_Mxc    from  OPENDATASOURCE('SQLOLEDB', " & _
                 " 'Data Source=" & M_server & "; User ID=sa;Password=" & M_password & "').UFdata_" & Trim$(M_zt) & "_" & M_year & ".[dbo].[BBDC_AP_MXb] order by Myid 为什么多次运行的结果不一样呢?我这个是两个服务的数据库插入表,删除BBDC_AP_Mxc' 后再生成就表的顺序和原来的就不一样,我原来的是MYid顺序排的,结果不是的
               
      

  3.   

    请问为什么删除'BBDC_AP_Mxc' 表以后,再 select * into  'BBDC_AP_Mxc表, 数据的顺序就变了那?我是按客户小计的,结果就不是了?请专家指导,谢谢!急急急