SQL Server 2005/2008 查询EXCEL

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.csdn.net/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/p/1420944.html