2010-12-14 80 views
2

我有我的SQL脚本问题SQL脚本:错误与“OPENROWSET”

SELECT 
    SP.[MobileNumber], 
    SP.[LastName], 
    SP.[FirstName] 
FROM SampleTable1 SP 
INNER JOIN OPENROWSET 
( 
    'Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=C:\devpc11\sample.xls;', 
    'SELECT 
    MobileNumber, 
    LastName, 
    FirstName 
    FROM [SampleData$]') T 
ON SP.[MobileNumber] = T.[MobileNumber] 
GO 

当我尝试执行此,它生成此错误:

消息7357,16级,状态2,行1 无法处理对象“SELECT MobileNumber, 姓氏, 名字 FROM [SampleData $]”。链接服务器“(null)”的OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”表示该对象没有列或当前用户没有该对象的权限。

有没有解决方案?我真的无法找到任何在过去3小时..基本上,我只是想操纵Excel文件中的数据,然后将其保存到SQL Server 2005数据库,但现在,我想从Excel文件检索数据到sql服务器..感谢您的帮助..

+0

我已经做了。谢谢你提醒我。 :) – iceheaven31 2010-12-15 06:10:26

回答

1

我得到这个与电子表格本地工作。忘记OPENROWSET

  1. 在您的Excel电子表格中创建一个已命名的范围。 Tio做到这一点,突出显示所需的列(包括标题),右键单击并选择“命名范围”。给这个名字,这将是你的表名。

    http://www.homeandlearn.co.uk/me/mes9p2.html

  2. 保存并关闭您的电子表格。如果打开它,SQL Server将无法访问它。

  3. 添加链接的服务器。按照E节在指令它告诉你如何添加一个链接服务器的Excel电子表格如下:

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

  4. 你应该能够查询DS相当愉快,再按照指示。

下面是对我的作品的代码:

EXEC sp_addlinkedserver 'ExcelSource4', 
    'Jet 4.0', 
    'Microsoft.Jet.OLEDB.4.0', 
    'c:\sqlss.xls', 
    NULL, 
    'Excel 5.0'; 
GO 

SELECT * 
    FROM ExcelSource4...MyTable2; 

最后。开始接受一些答案并投票支持任何有用的答案。这是StackOverflow的命脉。

+0

这一个工作!非常感谢! – iceheaven31 2010-12-15 02:48:23