【发布时间】:2014-06-03 23:03:42
【问题描述】:
我在 Excel 工作簿中有定期来自第三方的数据源。这些工作表被命名为 Page1-2 和 Page2-2,由于连字符,我无法使用 SQL2008R2 访问它们。将其中一张表重命名为 Sheet1 的工作方式如下:
SELECT *
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source="D:\MyFiles\MyFile.xlsx"; Extended properties=Excel 12.0' )...Sheet1$
我已经尝试了与另一张纸的各种组合,但没有运气,例如。 [Page2-2]、'Page2-2'、[Page2-2$] 等。我收到错误消息“链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”不包含表“第 1-2 $”。该表不存在或当前用户对该表没有权限。'
基本上,我希望这个过程尽可能自动化,所以如果我可以不重命名工作表,我想知道如何访问名称中带有连字符的工作表????
谷歌搜索给我的结果是使用 Jet 提供程序,但这对我没有好处。
谢谢!
【问题讨论】:
-
我认为您需要
OPENDATASOURCE( )...[Page1-2$](即方括号内的美元符号),但我目前无法对此进行测试。 -
谢谢,但我试过了,但没有成功。
-
你得到什么错误?
-
链接服务器“(null)”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”不包含表“Page1-2$”。该表不存在或当前用户对该表没有权限。
-
this 建议在方括号内使用单引号 - 例如
['Page1-2$'].
标签: sql-server oledb