Vous rencontrez des messages d’erreur lorsque vous exécutez des requêtes de serveur liées sans les fournisseurs requis installés


Symptômes


Lorsque vous exécutez des requêtes TSQL qui utilisent des définitions de serveurs liés ou des requêtes ad hoc qui accèdent aux sources de données distantes (par l’intermédiaire des fonctions OPENROWSET ou OPENDATASOURCE), vous pouvez rencontrer des messages d’erreur semblables au suivant :

Message d’erreur 1 :
Le fournisseur OLE DB « nom fournisseur » n’a pas été enregistré. (Microsoft SQL Server, erreur : 7403)

Message d’erreur 2 :
Impossible de créer une instance de fournisseur de OLE DB « nom de fournisseur » pour le serveur lié « nom de serveur lié ». (Microsoft SQL Server, erreur : 7302)


Remarque : Vous pouvez également rencontrer ces messages après la migration de votre SQL Server à partir d’un serveur à un autre, ou lorsque vous restaurez la base de données master à partir d’un serveur sur un autre serveur.

Cause


Ces erreurs indiquent que SQL Server n’est pas parvenu à initialiser le fournisseur OLE DB qui est spécifié dans la définition du serveur lié. Ces messages peuvent se produire si une des conditions suivantes est vraie pour le système qui exécute SQL Server où le serveur lié est défini :
  • Le fournisseur OLE DB n’est pas encore installé.
  • Nombre de bits du fournisseur OLEDB installé ne correspond pas au nombre de bits de SQL Server. Par exemple, vous avez peut-être installé une version 32 bits du fournisseur, mais SQL Server est en cours d’exécution en mode 64 bits.
  • Le fournisseur OLE DB n’est pas enregistré.
Remarque : Lorsque vous créez le serveur lié en utilisant sp_addlinkedserver, SQL Server ne signale pas les messages d’erreur même lorsque l’une ou plusieurs des conditions ci-dessus est true.

Résolution


Passez en revue la liste des serveurs liés définis sur le SQL Server et découvrez le fournisseur OLE DB associé. Installez ensuite le fournisseur OLE DB en utilisant le logiciel du fournisseur correspondant. Assurez-vous que vous installez également le fournisseur correspondant à la plate-forme [x86 ou x64] de SQL Server.

Pour obtenir une liste des fournisseurs OLEDB installé, utiliser le Management Studio de SQL Server et accédez au nœud « Objets serveur » et développez le nœud « Serveur lié ». Vous pouvez également utiliser la vue de catalogue sys.servers pour trouver la liste de tous les serveurs liés et leurs fournisseurs OLEDB associés.