116

当我OPENROWSET在 SQL Server 2000 中运行查询时,它可以工作。

但是 SQL Server 2008 中的相同查询会产生以下错误:

SQL Server 阻止了对组件“即席分布式查询”的声明“OpenRowset/OpenDatasource”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure启用“即席分布式查询”

4

4 回答 4

242

以下命令可能对您有所帮助..

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
于 2013-01-27T03:54:21.840 回答
15

您可以检查以下命令

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO  --Added        
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

SELECT a.*
FROM OPENROWSET('SQLNCLI', 'Server=Seattle1;Trusted_Connection=yes;',
     'SELECT GroupName, Name, DepartmentID
      FROM AdventureWorks2012.HumanResources.Department
      ORDER BY GroupName, Name') AS a;
GO

或此文档链接

于 2013-01-27T18:36:14.090 回答
3

如果“不支持”对系统目录的临时更新,或者如果您收到“Msg 5808”,那么您需要像这样配置覆盖:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE with override
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE with override
GO
于 2017-01-27T14:41:43.247 回答
2
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO
于 2013-06-17T15:59:24.197 回答