Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Cómo solucionar el error "Clase no registrada" al conectarse a Integration Services de SQL Server

Iamgen ornamental. Programador agobiado porque no es capaz de conectarseSQL Server tiene un módulo muy interesante en sus ediciones Standard y Enterprise llamado Integration Services. Se trata de un conjunto de herramientas gráficas y objetos programables que, como su propio nombre indica, te permiten integrar tu SQL Server con otras fuentes de datos, moviendo, copiando y transformando datos gracias a las funciones integradas, y todo ello en un entorno visual.

No solo es interesante para este tipo de tareas, sino que también es extremadamente útil para gestionar tus propias bases de datos, ya que los planes de mantenimiento de las mismas (copias de seguridad, optimización de índices, avisos...) los haces utilizando por debajo Integration Services.

Existe un error habitual con esta herramienta que se suele producir ya en la primera fase: al intentar conectarte al servicio desde SQL Server Management Studio (SSMS).

El otro día me ocurrió a mí mismo con unas pruebas que estaba haciendo, y ya casi no me acordaba del detalle pues es un servicio que utilizo poco. Resulta que abres SSMS, eliges Integration Services en el desplegable, dejas tus credenciales de Windows (generalmente se accede como administrador):

El diálogo de conexión a Integration Services de SQL Server Management Studio

Pero al darle a conectar, obtenemos un error como el siguiente, que nos dice "Clase no registrada" (o "Class not registered" si usas la herramienta en inglés, como es debido), hablando además de no sé qué con SQL Server 2005 que es una versión antiquísima que no sé si nadie utiliza todavía:

El mensaje de erro que aparece con la indicación de clase no registrada.

EL mensaje en cuestión dice exactamente:

Connecting to the Integration Services service on the computer ‘XXXX’ failed with the following error: “Class not registered”.

o, en español:

La conexión al servicio Integration Services en la computadora 'XXXX' falló con el siguiente error: "Clase no registrada".

Lo peor del asunto es que, solo unos meses atrás había sido capaz de conectarme sin problema a la misma instancia. Pero ahora, de repente daba este error.

Cómo solucionar el problema de manera sencilla

En realidad lo peor no es lo anterior. Lo peor es que el mensaje en cuestión es muy desorientador. Al verlo uno piensa que se ha desconfigurado algo en el equipo, incluso puedes tratar de reinstalar SSMS o los propios Integration Services, pero no conseguirás nada con ello.

El problema viene en que, por alguna razón que no alcanzo a comprender, las versiones de los Integration Services (SSIS) y de SQL Server Management Studio (SSMS) deben coincidir para poder conectarte.

Es decir que, si como en mi caso, tienes un SQL Server 2017 instalado, para conectarte debes usar alguna versión 17.x, como la que venía con el servidor de datos cuando lo instalaste 🤦🏻

El lío de las versiones de SQL Server

Microsoft tiene una página específica para descargas de versiones antiguas de SQL Server Management Studio. Pero mucho ojo, porque solo llegan unas pocas versiones hacia atrás. Si tu instalación de SQL Server es muy antigua, más te vale tener una copia a mano.

Precisamente por cosas como esta recomiendo guardar en la misma máquina, tanto el .iso con el que hayas instalado SQL Server como el instalador de SSMS que había en ese momento, aunque todo acabe siendo muy viejo. Nunca sabes cuando tienes que retocar o reparar algo y seguramente te será complicado encontrarlo años más tarde si lo necesitas.

Así que, antes de nada, averigua tu versión actual de SQL Server. Para lo cual tienes varias opciones.

Por ejemplo, puedes irte a la gestión de servicios de SQL Server, buscar la instancia de la base de datos y verlo en las propiedades avanzadas del mismo:

Ls propiedades avanzadas mostrando ls dos versiones de las que hablaré a continuación

O bien, con una simple consulta: SELECT @@version:

El resultado de ejecutar la consulta

Fíjate en que, al más puro estilo Microsoft, lo de las versiones es un lío porque en realidad tienes dos números de versión: la versión del archivo y la versión del producto. Pero es que además te da datos diferentes según el método que uses para verlo.

En el caso de ver las propiedades del servicio te dice que la versión del archivo es la 2017.140.3485.1, pero la "versión", a secas, que debe de ser la del ejecutable principal es la 14.0.1000.169 (no una 17.x.xxxx.xxx que sería lo lógico y razonable).

Y en el caso de hacerlo con la consulta, te informa de que es SQL Server 2017 (sin más) y el número de versión (en este caso del motor de la base de datos), que es la 14.0.3485.1 que no coincide del todo con la anterior 🤦🏻 🤦🏻

Lo importante aquí es olvidarse de cualquier versión larga y fijarse en el nombre de versión "comercial", en este caso SQL Server 2017.

Por desgracia, el propio SSMS hace algo similar. Cuando lo arrancas te informa de que es la versión, por ejemplo, 17.1, pero luego te sacar el diálogo de actualización para avisarte de nuevas versiones, y ahí te indica un número completamente diferente, parecido al lío anterior:  

Diálogo de nueva versión de SSMS

En este caso, SSMS indica la versión 17.9.1 cuando arranca, pero en la instalada (figura anterior) indica la 14.0.17289.0, al igual que en el diálogo de "Acerca de":

El lío de versiones, también con SSMS

Es para empezar a darles y no parar, la verdad...

Bueno, el caso es que tienes que fijarte muy bien en la página de descargas de versiones antiguas de SSMS ya que la versión que necesitas descargar no coincide para nada con la versión de SQL Server con la que se corresponde: para la 17 del servidor es la 14 de SMSS, para la 18 es la 15, y solo a partir de la versión 2019 empezaron a hacer coincidir todo como es debido. Terrible este tipo de cosas que hacen para liar al usuario.

La correspondencia de versiones entre SQL Server y SSMS

En fin, que una vez que instales la versión correcta de SQL Server Manament Studio correspondiente a tu versión de SQL Server podrás conectarte a los Integration Services sin problema alguno.

Además, te recomiendo que no instales versiones nuevas de SSMS cuando cambie el número "major" (de la 14 a la 15, o a de la 14 a la 22 como se ve en mi captura anterior), y que le desconectes la opción de avisarte. O si lo haces, ten a mano el instalador de la versión original por si las moscas como te recomendaba antes.

¡Qué pereza todo!

Espero que te resulte útil 😊

José M. Alarcón Aguín Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José M. Alarcón Aguín
Archivado en: Acceso a Datos

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.