Click here to Skip to main content
15,945,334 members
Articles / Database Development / SQL Server

Preparing “Data Dictionary” using SQL Query

Rate me:
Please Sign up or sign in to vote.
5.00/5 (3 votes)
7 Oct 2011CPOL 16.6K   2   3


Documentation plays an important role whereas "Data Dictionary" gives the idea about data stored using application.


So here is the query for preparing the data dictionary of any database.
SELECT [Table Name] = OBJECT_NAME(c.object_id)
,[Column Name] =
,[Data Type] =
,[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 = '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


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 is null/not null, just include the field from sys.objects table and so on).


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
Software Developer (Senior) Cygnet Infotech Pvt. Ltd.
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

GeneralReason for my vote of 5 Nice my 5 Pin
Tejas Vaishnav18-Nov-11 18:03
professionalTejas Vaishnav18-Nov-11 18:03 
GeneralReason for my vote of 5 thanks Pin
magicpapacy11-Oct-11 21:07
magicpapacy11-Oct-11 21:07 
GeneralReason for my vote of 5 Nice Pin
kiran dangar6-Oct-11 23:55
kiran dangar6-Oct-11 23:55 
Reason for my vote of 5

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.