martes, 14 de mayo de 2013

SQL Server: Columnas de las tablas de una base de datos

En alguna ocasión os puede resultar interesante obtener todas las

columnas

de todas las

tablas

de una

base de datos

junto a su información asociada: nombre de

tabla

, nombre de

columna

, tipo de datos, si permite valores NULL, intercalación... ¿algún caso donde pueda sernos útil? Por ejemplo, tanto en SQL Server 2008 como en SQL Server 2012 se nos informa que en próximas versiones de

SQL Server

desaparecerán los tipos de datos TEXT, NTEXT e IMAGE y que en su lugar deberemos usar VARCHAR(MAX), NVARCHAR(max) o VARBINARY(MAX). Si queremos comprobar los tipos de datos de las

columnas

de las

tablas

de una determinada

base de datos

podemos usar el stored procedure sp_columns (podéis ver detalles sobre sp_columns en el MSDN):

-- Obtenemos info sobre columnas de las tablas
sp_columns '%'

La información que nos devuelve el stored procedure sp_columns es muy completa pero claro, el número de filtros es limitado por sus parámetros y no podemos ordenar el conjunto de resultados; siguiendo con el ejemplo anterior, podría interesarnos ordenar por la

columna

DATA_TYPE (nombre del tipo de datos). ¿Y cómo lo hacemos? Podemos utilizar en su lugar la vista INFORMATION_SCHEMA.COLUMNS que está basada en las tablas de sistema sysobjects, spt_data_type_info, systypes, syscolumns, syscomments, sysconfigures y syscharsets:

-- Obtenemos info sobre columnas de las tablas
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY DATA_TYPE

Si observamos los resultados que nos devuelve la consulta anterior podemos ver que para la

columna

"DocumentSummary" de la

tabla

"Document" la longitud máxima del campo (CHARACTER_MAXIMUM_LENGTH) es -1... eso significa que dicha

columna

es del tipo NVARCHAR(MAX). La longitud MAX viene representada como -1 para los tipos VARCHAR, NVARCHAR y VARBINARY; para el tipo de datos XML la

columna

CHARACTER_MAXIMUM_LENGTH también tendrá valor -1.


Y hasta aquí el artículo de hoy, espero que os sirva para tener "controladas" vuestras

columnas

y sus tipos, je je je... Recordad también que dentro de

areaTIC

podéis encontrar otros artículos, no dudéis en consultar nuestro archivo, también podéis seguirnos por RSS o las principales redes sociales (twitter, facebook, linkedin...) 


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

No hay comentarios:

Publicar un comentario en la entrada