sql >> Base de Datos >  >> RDS >> Sqlserver

Vistas de SQL Server INFORMATION_SCHEMA | Ver si existe una tabla

¿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.