SQL Server 2008/64位 – 如何创build包括Excel在内的查询

我们在64位盒子上运行SQL Server 2008。 我们有一个请求来创build一个查询,该查询具有从Excel表中绘制数据的Where子句。 在伪代码中,查询可能如下所示:

Select column1, column2, column3 From MyDatabase.MyTable Where column4 IN (Select all values from column 'A' in SubIDs.xls whose sheet name is 'SubIDs') 

它取决于XLS中数据的更改频率:如果不经常更改,则可以将其加载到数据库表中并直接进行查询。 SSIS是自动执行此操作的常用方式,但Jet没有64位OLE DB提供程序,因此您需要使用32位软件包:

http://msdn.microsoft.com/library/ms141766.aspx

或者,您可以创build一个到Excel电子表格的链接服务器,并直接查询它。 请参阅示例E(关于OLE DB提供程序的相同注释适用):

http://msdn.microsoft.com/en-us/library/ms190479.aspx

就个人而言,如果可能的话,我会首先将数据加载到MSSQL中,这会更容易。