Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Impossible de créer une instance du fournisseur OLE DB Microsoft.Jet.OLEDB.4.0 pour le serveur lié null

J'ai MS SQL Server 2012 et Office 2013. Cela semble être très pointilleux, vous devrez donc peut-être vous adapter à vos versions particulières.

  1. Téléchargez Microsoft.ACE.OLEDB.12.0 pour Windows, version 64 bits disponible ici :https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Installez-le sur votre serveur.
  3. Vérifiez l'utilisateur qui exécute SQL Server et assurez-vous qu'il a accès au répertoire temporaire C:\Windows\ServiceProfiles\LocalService\AppData\Local\Temp s'il s'agit d'un compte de service local ou C:\Windows\ServiceProfiles\NetworkService\ AppData\Local\Temp s'il s'agit d'un compte de service réseau.
  4. Configurez les « requêtes distribuées ad hoc » et activez Microsoft.ACE.OLEDB des fichiers comme celui-ci :

Voici les commandes SP_CONFIGURE :

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'DynamicParam', 1

Sur la version plus récente de SQL Server 2014 Vous avez utilisé 'DynamicParameters' au lieu de 'DynamicParam'

EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

Assurez-vous d'enregistrer msexcl40.dll comme ceci :

regsvr32 C:\Windows\SysWOW64\msexcl40.dll