Impossible d'instancier le fournisseur OLE DB pour le serveur lié
Problème :
Lors de la tentative de exporter des données d'une table vers Excel à l'aide d'une requête T-SQL, l'erreur "Impossible de créer une instance du fournisseur OLE DB" Microsoft.Jet.OLEDB.4.0 pour le serveur lié null" se produit.
Cause :
Cette erreur se produit généralement lorsque :
- Le l'utilisateur ne dispose pas des autorisations suffisantes pour accéder au dossier temporaire utilisé par OPENROWSET.
- Le fournisseur OLE DB 32 bits (Microsoft.Jet.OLEDB.4.0) ne peut pas être chargé en cours de processus sur un serveur SQL 64 bits.
Solution pour serveur SQL 64 bits :
- Téléchargez et installez Microsoft.ACE.OLEDB.12.0 pour Windows 64 bits.
-
Accordez l'accès au répertoire temporaire (C:WindowsServiceProfilesNetworkServiceAppDataLocalTemp pour un compte de service réseau) au compte exécutant SQL Server.
-
Activez les requêtes distribuées ad hoc et configurez Microsoft.ACE.OLEDB propriétés :
SP_CONFIGURE 'show advanced options', 1;
GO
RECONFIGURE;
SP_CONFIGURE 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
Copier après la connexion
-
Enregistrer msexcl40.dll :
regsvr32 C:\Windows\SysWOW64\msexcl40.dll
Copier après la connexion
Supplémentaire Remarques :
- Pour SQL Server 2014 et versions ultérieures, utilisez « DynamicParameters » au lieu de « DynamicParam » dans la commande EXEC sp_MSset_oledb_prop.
- Assurez-vous que l'utilisateur exécutant la requête dispose des privilèges nécessaires, tels que « IMPERSONATE » et "ALTER TOUT SERVEUR LIÉ."
- Si Vous rencontrez toujours des problèmes, vérifiez si « MessageBoxText » est défini sur « 3 » dans le gestionnaire de configuration SQL Server sous « Paramètres du fournisseur OLE DB ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!