Published on

February 2, 2017

Comprendiendo los servidores vinculados en SQL Server

En SQL Server, los servidores vinculados nos permiten conectarnos a otros sistemas de gestión de bases de datos relacionales (RDBMS) y acceder a sus datos. Sin embargo, a veces podemos encontrar errores al trabajar con servidores vinculados. En este artículo, discutiremos uno de esos errores y su solución.

El proveedor OLE DB “ASEOLEDB” proporcionó metadatos inconsistentes para una columna

Recientemente, un cliente encontró un error al intentar consultar un servidor vinculado a Sybase. La consulta que intentaron fue:

SELECT * 
FROM SYBASESERVER.prodxc.dbo.sysobjects

Sin embargo, esta consulta falló con el siguiente error:

Msg 7356, Nivel 16, Estado 1, Línea 1
El proveedor OLE DB "ASEOLEDB" para el servidor vinculado "SYBASESERVER" proporcionó metadatos inconsistentes para una columna.
La columna "versionts" (ordinal de tiempo de compilación 20) del objeto "prodxc.dbo.sysobjects" se informó que tenía un "DBCOLUMNFLAGS_ISFIXEDLENGTH" de 16 en tiempo de compilación y 0 en tiempo de ejecución.

Tras una investigación más detallada, descubrimos que el problema parecía estar relacionado con la tabla específica “sysobjects”. Para solucionarlo, sugerimos intentar la misma consulta con otras tablas dentro del catálogo del sistema y, sorprendentemente, esas consultas se ejecutaron correctamente sin problemas.

Como solución alternativa, recomendamos utilizar el formato OPENQUERY en la consulta del servidor vinculado:

SELECT * 
FROM OPENQUERY([SYBASESERVER], 'SELECT * FROM PRODXC.DBO.SYSOBJECTS')

Este formato evita el problema y permite que la consulta se ejecute sin errores.

Tras un análisis más detallado, descubrimos que el proveedor OLE DB MDA de Sybase en el servidor de Sybase no estaba actualizado. Es crucial asegurarse de que los controladores tanto en el cliente como en el servidor estén actualizados para evitar estas inconsistencias.

Conclusión

Los servidores vinculados en SQL Server proporcionan una forma conveniente de acceder a datos de otros RDBMS. Sin embargo, es esencial estar al tanto de los posibles problemas que puedan surgir, como errores de metadatos inconsistentes. Al utilizar el formato OPENQUERY y asegurarse de que los controladores estén actualizados, podemos superar estos desafíos y seguir trabajando con servidores vinculados sin problemas.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.