Openrowset 不在 SQL Server 中执行

问题描述 投票:0回答:1

我正在尝试从 Excel 工作表中获取数据并通过

Openrowset
语句将其存储到 SQL Server 2019 中。首先,我要求启用“临时分布式查询”和“显示高级选项”,我这样做了,但仍然声称执行它会卡住,并且没有提供所需的结果。我正在本地计算机上执行此操作。

查询示例:

SELECT * 
FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0',
                 'Excel 12.0;Database=C:\Users\Public\Documents\Prueba.xlsx',
                 'Select * from [Hoja1$]')

这是一个小的 Excel 文件,只是一个测试,10 行,仅此而已,我在本地计算机上执行此操作,我之前在我的工作计算机中执行过此操作并且它可以工作,但在这里不行。

sql-server import ssms openrowset
1个回答
0
投票
Please try the following steps:

 1. If the *.xslx file is open in Excel. Close it in Excel.
 2. Run SSMS as administrator.
 3. Give the account used to run the SQL Server (MSSQLSERVER) service
    full permission on this folder where your .xlsx file is stored. 
   
   On my machine account: <<Server Name>>\Network Service

 4. Is [Hoja1$] the sheet name or a defined range within the file?
    Sheet names are formatted as         from [Sheet1$] 
    Range names are formatted as         from [$Data]
    I believe you can use something like from [Sheet1$A2:M26] as well. 

 5. I use the following format:
   'Excel 12.0;IMEX=1;HDR=Yes;Database=F:\\temp\filename.xlsx'

希望这有帮助。另请注意,当 Openrowset 失败时,文件可能会被锁定在打开状态。再次尝试读取该文件将失败,直到 打开的锁被移除。

© www.soinside.com 2019 - 2024. All rights reserved.