Generando el diccionario de datos en SQL Server

Generando el diccionario de datos en SQL Server

Un diccionario de datos es un listado de los datos que se usarán en el sistema. Estos datos se encuentran detallados y pueden ser comprendidos entre los analistas de sistemas y los usuarios que tendrán acceso al documento.

Para generar nuestro diccionario de datos debemos usar una base de datos y ejecutar el siguiente script:

select 
	d.object_id,
	a.name [tabla],
	b.name [columna], 
	c.name [tipo], 
	CASE
		WHEN c.name = 'numeric' OR  c.name = 'decimal' OR c.name = 'float'  THEN b.precision
		ELSE null
	END [Precision], 
	b.max_length, 
	CASE 
		WHEN b.is_nullable = 0 THEN 'NO'
		ELSE 'SI'
	END [Permite Nulls],
	CASE 
		WHEN b.is_identity = 0 THEN 'NO'
		ELSE 'SI'
	END [Es Autonumerico],	
	ep.value [Descripcion],
	f.ForeignKey, 
	f.ReferenceTableName, 
	f.ReferenceColumnName 
from sys.tables a   
	inner join sys.columns b on a.object_id= b.object_id 
	inner join sys.systypes c on b.system_type_id= c.xtype 
	inner join sys.objects d on a.object_id= d.object_id 
	LEFT JOIN sys.extended_properties ep ON d.object_id = ep.major_id AND b.column_Id = ep.minor_id
	LEFT JOIN (SELECT 
				f.name AS ForeignKey,
				OBJECT_NAME(f.parent_object_id) AS TableName,
				COL_NAME(fc.parent_object_id,fc.parent_column_id) AS ColumnName,
				OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
				COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS ReferenceColumnName
				FROM sys.foreign_keys AS f
				INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id) 	f ON f.TableName =a.name AND f.ColumnName =b.name
WHERE a.name <> 'sysdiagrams' 
ORDER BY a.name,b.column_Id

En mi caso usare una base de datos llamada BDCita y el resultado al ejecutar el script fue el siguiente:

Diccionario datos sql server

Se muestra el listado de los datos como el nombre del objeto, el nombre de la tabla, el campo, el tipo de dato que tiene ese campo, la longitud máxima, si en ese campo permite valores nulos, si es autonumérico, también sobre las claves foráneas y un campo descriptivo para documentar los campos cuando se desee imprimir y enviarlo a otros usuarios.

Publicar un comentario

Guardar mi nombre, correo electrónico y sitio web en este navegador la próxima vez que comente

0 Comentarios