我的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,Level 16,State 2,Line 1 无法处理对象“SELECT 手机号码, 姓, 名字 FROM [SampleData $]“。链接服务器”(null)“的OLE DB提供程序”Microsoft.Jet.OLEDB.4.0“表示该对象没有列,或者当前用户没有该对象的权限。
这有什么解决方案吗?我真的在过去3个小时内找不到任何东西..基本上,我只想操纵excel文件中的数据,然后将其保存到sql server 2005数据库,但是现在,我想从excel文件中检索数据到sql server ..感谢您的帮助..
答案 0 :(得分:1)
我在本地使用电子表格。忘了OPENROWSET
在excel电子表格中创建命名范围。 Tio执行此操作,突出显示所需的列(包括标题),右键单击并选择“命名范围”。给它一个名字,这将是你的表名。
保存并关闭电子表格。如果你打开它,SQL Server将无法访问它。
添加链接服务器。按照以下 E部分中的说明操作,告诉您如何为Excel电子表格添加链接服务器:
您应该能够按照说明再次愉快地查询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的生命线。