¿Cuál es el problema?
Al escribir consultas para una base de datos en la que puede ser nuevo o que cambia con frecuencia, es posible que desee ejecutar una verificación rápida para encontrar todas las tablas en una base de datos específica, o las columnas en la base de datos, o para buscar si la tabla o la columna existe.
¿Por qué es esto un problema?
Comprender el esquema y qué tablas contiene ayuda a escribir SQL eficiente y ayuda a evitar ejecutar consultas varias veces solo para ver si el nombre del esquema o el nombre de la columna es correcto.
Este tutorial ayudará a resolver estos problemas.
Usando el esquema de información
Consultar los metadatos en una fuente de datos es la forma más fácil de determinar la composición de una tabla si aún no la comprende. Microsoft SQL Server proporciona una vista de esquema de información como uno de varios métodos para obtener estos metadatos. Como dice su documentación de soporte, “las vistas del esquema de información proporcionan una vista interna independiente de la tabla del sistema de los metadatos de SQL Server. Las vistas del esquema de información permiten que las aplicaciones funcionen correctamente, aunque se han realizado cambios significativos en las tablas del sistema subyacente”.
Usaremos un par de vistas en el esquema de información para ejecutar consultas que ayuden a determinar la composición de las tablas en la fuente de datos.
Para mostrar las TABLES
y COLUMNS
en la base de datos o busque TABLES
y COLUMNS
.
Esta primera consulta devolverá todas las tablas de la base de datos que está consultando.
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
La segunda consulta devolverá una lista de todas las columnas y tablas en la base de datos que está consultando.
SELECT
TABLE_NAME,
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
O bien, también puede consultar solo las COLUMNS
de una tabla específica y devolver los nombres de columna de la tabla específica 'Álbum' en nuestra base de datos.
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Album'
Con esta siguiente consulta puedes averiguar si existe o no una TABLE
en la fuente de datos que coincida con algún tipo de parámetro de búsqueda.
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME = 'Album'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
La consulta devolverá la palabra 'encontrado' si la tabla 'Álbum' existe en nuestra base de datos.
Ahora, para ir un poco más allá, puede usar esta consulta para averiguar si hay o no una COLUMN
en la fuente de datos que coincida con algún tipo de parámetro de búsqueda.
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME = 'Title'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
Utilizando el INFORMATION_SCHEMA
ver en su fuente de datos puede ser una forma confiable de determinar qué hay en la fuente de datos mientras crea sus consultas.
Para obtener más información sobre las vistas de esquema de información del sistema de Microsoft SQL Server, lea más en sus documentos de soporte.