Consultar el catálogo del sistema de SQL Server

Las aplicaciones dinámicas que no están codificadas de forma rígida para funcionar con un conjunto específico de tablas y vistas deben disponer de un mecanismo para determinar la estructura y los atributos de los objetos de cualquier base de datos a la que se conectan. Las aplicaciones pueden necesitar información como la siguiente:

  • El número y nombre de las tablas y vistas de una base de datos.
  • El número de columnas de una tabla o vista, junto con el nombre, el tipo de datos, la escala y la precisión de cada columna.
  • Las restricciones definidas en una tabla.
  • Los índices y las claves definidos para una tabla.

El catálogo del sistema de SQL Server 2005 proporciona esta información para las bases de datos de SQL Server. El núcleo de los catálogos del sistema de SQL Server 2005 es un conjunto de vistas que muestran metadatos que describen los objetos de una instancia de SQL Server. Los metadatos son datos que describen los atributos de los objetos de un sistema. Las aplicaciones basadas en SQL Server pueden tener acceso a la información de los catálogos del sistema utilizando lo siguiente:

  • Vistas de catálogo. Éste es el método de acceso recomendado.
  • Vistas del esquema de información.
  • Conjuntos de filas del esquema OLE DB.
  • Funciones del catálogo de ODBC.
  • Procedimientos almacenados y funciones del sistema.

SQL Server 2005 incluye las vistas de catálogo como una interfaz relacional completamente nueva con los metadatos del catálogo. Estas vistas ofrecen acceso a los metadatos que están almacenados en cada base de datos del servidor.

[!NOTA] Las vistas de catálogo no ofrecen acceso a los metadatos de réplica, del Agente SQL Server ni de copias de seguridad.

Se recomienda utilizar las vistas de catálogo para obtener acceso a los metadatos por los motivos siguientes:

  • Todos los metadatos están disponibles como vistas de catálogo.
  • Las vistas de catálogo presentan los metadatos en un formato que es independiente de cualquier implementación de tabla del catálogo, por lo que no se ven afectadas por los cambios de las tablas del catálogo subyacentes.
  • Las vistas de catálogo son la forma más eficaz de obtener acceso a los metadatos del servidor del núcleo.
  • Las vistas de catálogo son la interfaz general con los metadatos del catálogo y la forma más directa de obtener, transformar y presentar formularios personalizados de estos metadatos.
  • Los nombres de las vistas de catálogo y sus columnas son descriptivos. Los resultados de la consulta serán los que puede esperar un usuario con conocimientos moderados de la característica correspondiente a los metadatos consultados.
ms189082.note(es-es,SQL.90).gifImportante:
En versiones futuras de SQL Server, Microsoft puede aumentar la definición de cualquier vista de catálogo del sistema agregando columnas al final de la lista. Se recomienda no usar la sintaxis SELECT * FROM sys.catalog_view_name en código para producción, ya que el número de columnas devueltas podría cambiar y alterar la aplicación.

Para obtener ejemplos de consultas al catálogo del sistema mediante las vistas de catálogo, vea Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server.

Vistas del esquema de información

Las vistas del esquema de información se basan en las definiciones del estándar SQL-92 de las vistas de catálogo. Presentan la información del catálogo en un formato que es independiente de cualquier implementación de tabla del catálogo, por lo que no se ven afectadas por los cambios de las tablas del catálogo subyacentes. Las aplicaciones que usan estas vistas son portátiles entre sistemas de bases de datos heterogéneos compatibles con SQL-92. Para obtener más información, vea Vistas de esquema de información (Transact-SQL).

[!NOTA] Las vistas del esquema de información no contienen metadatos específicos de SQL Server 2005.

Vistas de compatibilidad

Muchas de las tablas del sistema de versiones anteriores de SQL Server se implementan ahora como un conjunto de vistas en SQL Server 2005. Se conocen como vistas de compatibilidad y sólo se proporcionan por compatibilidad con versiones anteriores. Muestran los mismos metadatos que están disponibles en SQL Server 2000. Sin embargo, no muestran ninguno de los metadatos relacionados con las nuevas características de SQL Server 2005. Por tanto, cuando utilice estas nuevas características, como Service Broker o las particiones, deberá cambiar a la utilización de las vistas de catálogo. Éste es un buen motivo para realizar una actualización a las vistas de catálogo. Otro motivo es que es posible que las columnas de vista de compatibilidad que almacenan los Id. de usuario y tipo devuelvan valores NULL o activen desbordamientos aritméticos. Esto se debe a que SQL Server 2005 permite crear más de 32.767 usuarios y tipos de datos. Por ejemplo, si desea crear 32.768 usuarios y, a continuación, ejecutar la consulta SELECT * FROM sys.sysusers, si el valor de ARITHABORT es ON, la consulta generará un error de desbordamiento aritmético. Si el valor de ARITHABORT es OFF, la columna uid devolverá valores NULL.

Para evitar estos problemas, se recomienda realizar la actualización a las nuevas vistas de catálogo que pueden procesar ese mayor número de Id. de usuario y tipo.

Conjuntos de filas de esquema OLE DB

La especificación OLE DB define una interfaz IDBSchemaRowset que expone un grupo de conjuntos de filas de esquema que contienen la información del catálogo. Los conjuntos de filas de esquema OLE DB son un método estándar para presentar la información del catálogo admitida por distintos proveedores OLE DB. Los conjuntos de filas son independientes de la estructura de las tablas del catálogo subyacentes. Para obtener más información, vea Schema Rowset Support (OLE DB).

El proveedor OLE DB de SQL Native Client admite una extensión de IDBSchemaRowset que muestra la información del catálogo de los servidores vinculados usados en consultas distribuidas. Para obtener más información, vea LINKEDSERVERS Rowset (OLE DB).

Funciones del catálogo de ODBC

La especificación ODBC define un conjunto de funciones del catálogo que devuelven conjuntos de resultados que contienen la información del catálogo. Estas funciones constituyen un método estándar para presentar la información del catálogo admitida por los distintos controladores ODBC. Los conjuntos de resultados son independientes de la estructura de las tablas del catálogo subyacentes.

El controlador ODBC de SQL Native Client admite dos funciones específicas del controlador que proporcionan información del catálogo de los servidores vinculados usados en consultas distribuidas. Para obtener más información, vea Using Catalog Functions.

Procedimientos almacenados y funciones del sistema

Transact-SQL define los procedimientos almacenados y las funciones del sistema del servidor que devuelven la información del catálogo. Aunque estos procedimientos almacenados y funciones son específicos de SQL Server, aíslan a los usuarios de la estructura de las tablas del catálogo del sistema subyacentes. Para obtener más información, vea Funciones de metadatos (Transact-SQL) y Procedimientos almacenados del sistema (Transact-SQL).

Vea también

Tareas

Solucionar problemas de visibilidad de los metadatos

Conceptos

Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server

Otros recursos

Vistas del sistema (Transact-SQL)
Tablas del sistema (Transact-SQL)
Vistas de catálogo (Transact-SQL)
Vistas de compatibilidad (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005