• Here is a view that I add to my databases that I use to create a column level data dictionary. I think I will incorporate the ideas from this article into it.

    CREATE VIEW [dbo].[DataDictonary] AS

    SELECT schemas.name AS SchemaName

    ,all_objects.name AS TableName

    ,syscolumns.id AS ColumnId

    ,syscolumns.name AS ColumnName

    ,systypes.name AS DataType

    ,syscolumns.length AS CharacterMaximumLength

    ,sysproperties.[value] AS ColumnDescription

    ,syscomments.TEXT AS ColumnDefault

    ,syscolumns.isnullable AS IsNullable

    FROMsyscolumns

    INNER JOIN sys.systypes ON syscolumns.xtype = systypes.xtype

    LEFT JOIN sys.all_objects ON syscolumns.id = all_objects.[object_id]

    LEFT OUTER JOIN sys.extended_properties AS sysproperties ON (sysproperties.minor_id = syscolumns.colid AND sysproperties.major_id = syscolumns.id)

    LEFT OUTER JOIN sys.syscomments ON syscolumns.cdefault = syscomments.id

    LEFT OUTER JOIN sys.schemas ON schemas.[schema_id] = all_objects.[schema_id]

    WHERE syscolumns.id IN (SELECT id

    FROM sysobjects

    WHERE xtype = 'U')

    AND (systypes.name <> 'sysname')