SQL SERVER(openrowset函数)从文件(.dbf)读取数据并将数据作为行集返回

来源:这里教程网 时间:2026-03-02 10:09:02 作者:

http://www.cnblogs.com/nclly/archive/2008/12/04/1347948.html

使用 OLE DB 连接并访问远程数据的一次性的临时方法:从文件读取数据并将数据作为行集返回

[@more@]

只有在以下情况下才能使用 OPENROWSET 访问 OLE DB 数据源中的远程数据:指定访问接口的 DisallowAdhocAccess 注册表选项已显式设置为 0,并启用了 Ad Hoc Distributed Queries 高级配置选项。如果未设置这些选项,则默认行为不允许即席访问。

--将test.dbf中的数据复制到temp(数据库自动新创建的)表中

select * into temp from
openrowset('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=d:datebase','select * from [test.dbf]')


注意:select * from [test.dbf]test.dbf的文件名(不包括扩展名)长度不能超过8位,否则会提示找不到对象
详细可参考MSDN

select * from
openrowset('MICROSOFT.JET.OLEDB.4.0','dBase 5.0;DATABASE=d:','select * from [info.dbf]')

注意这里目录是 数据库服务器端机器目录

另一方法:

select *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0',
'Data Source="D:";User ID=Admin;Password=;Extended properties=dBase 5.0')..info.dbf

需要设置

启用Ad Hoc Distributed Queries:
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure 'Ad Hoc Distributed Queries',0
reconfigure
exec sp_configure 'show advanced options',0
reconfigure

相关推荐