我的SQL脚本有问题:

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

当我尝试执行此问题时,它会生成此错误:

MSG 7357,16级,状态2,第1行无法处理对象“选择Mobilenumber,LastName,FirstName [sampledata $]”。 OLE DB提供商“ Microsoft.jet.oledb.4.0”用于链接服务器“(null)”表示该对象没有列,或者当前用户对该对象没有权限。

有什么解决方案吗?在过去的3个小时中,我真的找不到任何东西。基本上,我只想从Excel文件中操纵数据,然后将其保存到SQL Server 2005数据库,但是目前,我想将数据从Excel文件中检索到SQL Server ..感谢您的帮助。

有帮助吗?

解决方案

我把这个与当地的电子表格一起使用。忘记 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的命脉。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top