当我OPENROWSET
在 SQL Server 2000 中运行查询时,它可以工作。
但是 SQL Server 2008 中的相同查询会产生以下错误:
SQL Server 阻止了对组件“即席分布式查询”的声明“OpenRowset/OpenDatasource”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure启用“即席分布式查询”
当我OPENROWSET
在 SQL Server 2000 中运行查询时,它可以工作。
但是 SQL Server 2008 中的相同查询会产生以下错误:
SQL Server 阻止了对组件“即席分布式查询”的声明“OpenRowset/OpenDatasource”的访问,因为该组件作为该服务器安全配置的一部分被关闭。系统管理员可以使用sp_configure启用“即席分布式查询”
以下命令可能对您有所帮助..
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
或此文档链接
如果“不支持”对系统目录的临时更新,或者如果您收到“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
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO