Recibirá mensajes de error al ejecutar consultas de servidor vinculadas sin los proveedores necesarios instalados


Síntomas


Al ejecutar consultas de TSQL que usan definiciones de servidores vinculados o ad hoc que tienen acceso a orígenes de datos remotos (mediante las funciones OPENROWSET u OPENDATASOURCE), puede encontrar mensajes de error similares al siguiente:

Mensaje de error 1:
No se ha registrado el proveedor OLE DB "nombre del proveedor". (Microsoft SQL Server, Error: 7403)

Mensaje de error 2:
No se puede crear una instancia del proveedor OLE DB "nombre del proveedor" para "nombre de servidor vinculado" de servidor vinculado. (Microsoft SQL Server, Error: 7302)


Nota: También puede encontrar estos mensajes después de migrar su SQL Server desde un servidor a otro o cuando se restaura la base de datos master de un servidor en otro servidor.

Causa


Estos errores indican que SQL Server no es capaz de inicializar el proveedor OLE DB especificado en la definición del servidor vinculado. Estos mensajes pueden ocurrir si cualquiera de las siguientes condiciones es true para el sistema que ejecuta SQL Server donde se define el servidor vinculado:
  • El proveedor OLEDB no está instalado todavía.
  • Valor de bits del proveedor OLE DB instalado no coincide con el valor de bits de SQL Server. Por ejemplo, puede haber instalado la versión de 32 bits del proveedor, pero SQL Server se ejecuta en modo de 64 bits.
  • El proveedor OLE DB no está registrado.
Nota: Cuando se crea un servidor vinculado con sp_addlinkedserver, SQL Server no informa de los mensajes de error, incluso cuando uno o más de las condiciones anteriores es true.

Solución


Revise la lista de servidores vinculados definidos en el SQL Server y averiguar el proveedor OLEDB asociado a él. A continuación, instale al proveedor OLEDB con el software del proveedor correspondiente. Asegúrese de que también va a instalar al proveedor que corresponda a la plataforma [x86 o x64] de SQL Server.

Para obtener una lista de proveedores OLE DB instalados, use el de SQL Server Management Studio y desplácese hasta el nodo "Objetos de servidor" y expanda el nodo de "Servidor vinculado". También puede utilizar la vista de catálogo sys.servers para buscar la lista de servidores vinculados definidos de todo y sus proveedores OLEDB asociados.