【发布时间】:2019-04-12 05:23:59
【问题描述】:
尝试在 sql server 中导入 excel 文件时。出现上述错误。
【问题讨论】:
标签: sql-server-2017
尝试在 sql server 中导入 excel 文件时。出现上述错误。
【问题讨论】:
标签: sql-server-2017
转到链接服务器 > 提供程序并双击您在 OPENROWSET 查询中使用的提供程序并检查是否启用了“禁止临时访问”,如下所示。
您还可以在注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\INSTANCE NAME\PROVIDERS\SQLNCLI10 下找到此选项的值。运行 regedit 并转到上面的路径并找到“DisallowAdHocAccess”,如下所示。
我们可以从 SSMS 提供程序属性中禁用“禁止临时访问”,但它会删除注册表中的条目,而不是将值更改为零,并且我们仍然会收到对 OLE DB 提供程序的临时访问被拒绝错误。
需要做的是,需要将此注册表项从 1 更改为 0,以使其适用于非系统管理员登录。因此,双击条目并将值更改为零,然后保存记录。
即使“禁止临时访问”被禁用,我们也需要检查注册表项中的“禁止临时访问”。如果缺少该条目,请从 SSMS 中的提供程序属性中启用该选项,然后通过将注册表中的值更改为零来禁用它。
【讨论】:
这是可用于启用开放行集使用的 T-SQL。
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO
在此之后,他能够将数据从 excel 表中提取到 SQL Server。好吧,对于一个看起来很复杂的问题,这是一个非常简单的解决方案。如果您有其他建议,请分享。
【讨论】: