我用
SELECT * into POI_TEMP FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source =f:\dbf;User ID=Admin;Password=;Extended properties=dBase 5.0')... POI_1;
导入dbf数据 到sql server 然后 添加序列号 alter table POI_TEMP add SerialID bigint IDENTITY(1,1) PRIMARY KEY NOT NULL;接着用企业管理器中提供的数据导入方式(driver do microsoft dBase(*.dbf))ODBC 数据源导入POI_1 成功后添加序列号 alter table POI_1 add SerialID bigint IDENTITY(1,1) PRIMARY KEY NOT NULL;然后想判断记录顺序是否一致
select count(*) from POI_TEMP a, POI_1 b where a.SerialID =b.SerialID and a.FEATCODE != b.FEATCODE;结果发现193000条记录中竟有71600条件不同,请问哪一个方式是对的? 如果都不对如何才能按照POI_1.dbf文件中的记录顺序导入数据?
SELECT * into POI_TEMP FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source =f:\dbf;User ID=Admin;Password=;Extended properties=dBase 5.0')... POI_1;
导入dbf数据 到sql server 然后 添加序列号 alter table POI_TEMP add SerialID bigint IDENTITY(1,1) PRIMARY KEY NOT NULL;接着用企业管理器中提供的数据导入方式(driver do microsoft dBase(*.dbf))ODBC 数据源导入POI_1 成功后添加序列号 alter table POI_1 add SerialID bigint IDENTITY(1,1) PRIMARY KEY NOT NULL;然后想判断记录顺序是否一致
select count(*) from POI_TEMP a, POI_1 b where a.SerialID =b.SerialID and a.FEATCODE != b.FEATCODE;结果发现193000条记录中竟有71600条件不同,请问哪一个方式是对的? 如果都不对如何才能按照POI_1.dbf文件中的记录顺序导入数据?
insert into POI_TEMP(...) --除自增外所有字段,顺序与原来一样
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source =f:\dbf;User ID=Admin;Password=;Extended properties=dBase 5.0')... POI_1;
在原来库中加序号字段,dbf文件和csv文件都是可以加的
然后随便导入
在SQL Server 可以select *,IDENTITY (int,1,1) as id0001 into POI_TEMP1 from POI_TEMP order by 加的字段
最后删除 加的字段 alter table POI_TEMP1 drop column 加的字段
做之前注意备份原始文件