Lorsque j'exécute une requête avec OPENROWSET
dans SQL Server 2000, cela fonctionne.
Mais la même requête dans SQL Server 2008 génère l'erreur suivante:
SQL Server a bloqué l'accès à STATEMENT 'OpenRowset/OpenDatasource' du composant 'Ad Hoc Distributed Queries', car ce composant est désactivé dans le cadre de la configuration de la sécurité pour ce serveur. Un administrateur système peut activer l'utilisation de 'Requêtes distribuées ad hoc' à l'aide de sp_configure
La commande suivante peut vous aider.
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
Vous pouvez vérifier la commande suivante
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
Ou ceci lien vers la documentation
Si les mises à jour ad hoc du catalogue système sont "non prises en charge" ou si vous obtenez un "Msg 5808", vous devrez configurer avec un remplacement comme suit:
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