Preparing “Data Dictionary” using SQL Query





5.00/5 (3 votes)
Introduction
Documentation plays an important role whereas "Data Dictionary" gives the idea about data stored using application.Solution
So here is the query for preparing the data dictionary of any database.SELECT [Table Name] = OBJECT_NAME(c.object_id)
,[Column Name] = c.name
,[Data Type] = t.name
,[Size] = c.max_length
,[Description] = isnull(ex.value,'')
FROM sys.columns c
LEFT OUTER JOIN sys.extended_properties ex ON (ex.major_id = c.object_id AND ex.minor_id = c.column_id AND ex.name = 'MS_Description')
INNER JOIN sys.types t ON c.system_type_id = t.system_type_id
WHERE OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0
AND OBJECT_NAME(c.object_id) in (select name from sys.tables where type= 'U')
ORDER BY OBJECT_NAME(c.object_id), c.column_id
Enhancement
You can add/remove columns which you want to include from the definition of the table (if any other required - i.e. if you want to display whether the column isnull
/not null
, just include the field from sys.objects
table and so on).