SQL Server 2005/2008 查询EXCEL

本文详细介绍了如何在SQLServer中通过添加链接服务器XLSINPUT来读取Excel文件的方法,包括SQL语句示例及直接查询XLS表格的技巧。同时,针对SQLServer2008未安装Excel的情况提供了解决方案,并列举了可能遇到的问题及配置AdHocDistributedQueries组件的步骤。

1、添加链接服务器XLSINPUT
SQL语句:
DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = 'XLSINPUT'
SET @srvproduct = 'Excel'
SET @provider = 'Microsoft.Jet.OLEDB.4.0'
SET @datasrc = 'c:\初期导入数据结构.xls'
SET @provstr = 'Excel 8.0'
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog


参考地址:http://support.microsoft.com/kb/306397/zh-cn

2、直接查询XLS表格
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\导入格式\产品1.xls', 'select * from [Data Sheet$]') 
select * from OpenRowSet('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\导入格式\产品1.xls', [Data Sheet$])   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\导入格式\产品1.xls')...[Data Sheet$]   
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=E:\导入格式\产品1.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"')...[Data Sheet$] 

参考地址:http://blog.youkuaiyun.com/HEROWANG/archive/2009/02/08/3869021.aspx


注意:

我使用的SQL Server 2008 没有安装EXCEL。

Excel 8.0 对应Excel 2000的版本。使用EXCEL2007的文件,请另存为97-2003的兼容模式的XLS文件。

可能遇到的问题:
解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。开启方法如下:
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO

转载于:https://www.cnblogs.com/qishichang/archive/2009/03/24/1420944.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值