注册 登录
编程论坛 SQL Server论坛

向已 在的空表中用下面的命令导入 dbf文件后为什么表中字段内容没有对齐?

sylknb 发布于 2012-05-18 11:05, 324 次点击
insert into 已存在表名 select * from
openrowset('MICROSOFT.JET.OLEDB.4.0'
,'dBase 5.0;DATABASE=c:\','select * from [test.dbf]')


我先用企业管理器把a.dbf文件导入SQL中的zkls数据库中的b表中,然后把b表清空表中所有内容(主要目的是二个表的字段名与结构相同)。然后用上述的命令再把原来的a.dbf导入到sql的B表中,发现B表中字段名与字段内容有交错。例如zy13是志愿,但它的内容变成了姓名
只有本站会员才能查看附件,请 登录
了,。。。这是什么原因?
2 回复
#2
netlin2012-05-18 18:24
在SQL Server中使用查询命令时,对于“*”的处理,要慎重。
我就遇到过类似的问题,解决的办法是:把“*”全部换成字段名序列。

insert into 已存在表名(字段名序列)
  select 字段名序列 from
     openrowset('MICROSOFT.JET.OLEDB.4.0' ,'dBase 5.0;DATABASE=c:\','select 字段名序列 from [a.dbf]')

希望能帮到你!

#3
sylknb2012-05-18 21:58
谢谢,准备去试一下。
insert into 已存在表名字段名序列)***此处可能不用写吧
  select 字段名序列 from
     openrowset('MICROSOFT.JET.OLEDB.4.0' ,'dBase 5.0;DATABASE=c:\','select 字段名序列 from [a.dbf]')

1