Posteado por: edeortuzar | 16/12/2013

Listar tablas, columnas, primary y foreing key, tipos de datos y si permite o no NULL


Buenas.
Les paso un script para SQL Server para realizar un query y poder listar las tablas, sus columnas, indicar si la columna es primary key o foreing key, indicar en caso que sea foreing key a que tabla hace referencia, listar el tipo de dato y si permite o no NULL.

Espero que les sirva.

SELECT
	tb.name 'Tabla',
	CASE
		WHEN ISNULL(i.is_primary_key, 0) = 1 THEN 'PK'
		WHEN ISNULL(fkc.referenced_object_id, 0) > 0 THEN 'FK'
		ELSE ''
	END 'Clave',
    c.name 'Columna',
    t.Name 'Tipo',
    c.max_length  'Longitud',
    /*
    c.precision ,
    c.scale ,*/
    CASE 
      WHEN c.is_nullable = 0 THEN 'NO' 
      WHEN c.is_nullable = 1 THEN 'SI'
	END 'NULL',
	'' 'Descripción',
    ISNULL(OBJECT_NAME(fkc.referenced_object_id),'') 'Nombre Tabla Relacionada'
    /*, cref.NAME 'Columna referenciada'*/
FROM
	sys.tables tb
INNER JOIN  
    sys.columns c ON tb.object_id = c.object_id
INNER JOIN 
    sys.types t ON c.system_type_id = t.system_type_id
LEFT OUTER JOIN 
    sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN 
    sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
LEFT JOIN 
	sys.foreign_key_columns fkc ON fkc.parent_column_id = c.column_id 
          AND fkc.parent_object_id = c.object_id
LEFT JOIN 
    sys.columns cref 
       ON fkc.referenced_column_id = cref.column_id 
          AND fkc.referenced_object_id = cref.object_id
order by tb.name

Saludos

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: