如何启用Ad Hoc分布式查询

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

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

SQL Server阻止访问组件“Ad Hoc Distributed Queries”的STATEMENT“OpenRowset / OpenDatasource”,因为此组件是作为此服务器的安全configuration的一部分而closures的。 系统pipe理员可以使用sp_configure启用“Ad Hoc Distributed Queries”

以下命令可能会帮助你

 EXEC sp_configure 'show advanced options', 1 RECONFIGURE GO EXEC sp_configure 'ad hoc distributed queries', 1 RECONFIGURE GO 

你可以检查下面的命令

 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 

或者这个文档链接

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

如果对系统目录的临时更新是“不被支持的”,或者如果你得到一个“消息5808”,那么你将需要像这样覆盖configuration:

 EXEC sp_configure 'show advanced options', 1 RECONFIGURE with override GO EXEC sp_configure 'ad hoc distributed queries', 1 RECONFIGURE with override GO