Sqlserver2012导⼊DBF⽂件
将dbf⽂件放在任意系统⽬录下,我放在d:\db⽬录下
需安装 (ACE)
官⽹下载地址:
安装之后在 sqlserver 实例下 ->“链接服务器”-> “访问接⼝”中会看到以下接⼝。
执⾏以下语句:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
在ssms中执⾏sql查询语句
select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015.DBF]') 这⾥因为环境原因可能会报ISAM错,
于是到对应的msxbse35.dll 注册,注册后需要重新启动数据库服务器才有效果。
再次执⾏sql 查询命令
select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/db','select * from [2015.DBF]')
提⽰如下
需安装Foxpro,并在Foxpro命令框输⼊以下命令回车,将dbf⽂件转换格式
USE 'd:\db\2015.dbf' EXCLUSIVE;
COPY TO 'd:\db\2015new.dbf' TYPE FOX2X;
或在Foxpro⾥将当前dbf⽂件导出为 dBase IV格式:
sqlserver2012数据库还原再次执⾏,这⾥应该选择新的dbf⽂件2015new.dbf,最终成功读取了dbf⽂件内容。速度还是⽐较快的,100多万的数据全表查询⽤了1分钟左右。
select*from OPENROWSET('Microsoft.ACE.OLEDB.12.0','dBase IV;HDR=NO;IMEX=2;DATABASE=d:/
db','select * from [2015new.DBF]')
步骤五:关闭系统存储过程⾼级选项开关
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure
知识点总结:
1.以下命令作⽤
--开启数据库系统存储过程⾼级选项
exec sp_configure 'show advanced options',1
reconfigure
-
-即席分布式查询服务器配置选项,开启之后可跨数据库访问
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
--修改ACE接⼊参数
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
以上内容还涉及到很多知识点,但时间原因暂没深⼊去逐个研究,只是点到为⽌。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论