Simple SQL Data dictionary

In preparation for a database refactor, I needed to create a data dictionary. These were new to me but doing it by hand seemed a little excessive. Here is the simple script I built that does this for you:

DROP TABLE DataBaseName.dbo.FieldDictionary
DROP TABLE DataBaseName.dbo.TableDictionary
CREATE TABLE TableDictionary(ID INT identity Primary key
,TableName VARCHAR(255)
GO

INSERT INTO TableDictionary(TableName)
SELECT TableName = name from sys.tables where type= 'U'
GO

CREATE TABLE FieldDictionary (ID int identity Primary key
                ,tableID int constraint fk_tableid Foreign Key references TableDictionary(ID)
                ,FieldName VARCHAR(255)
                ,FieldType VARCHAR (255)
                ,Description VARCHAR (1024))


INSERT INTO FieldDictionary(tableid,FieldName,FieldType)
SELECT TableID = d.ID
        ,FieldName = c.name
        ,FieldType = t.name
        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)
INNER JOIN yourDB.dbo.tableDictionary D
ON
(OBJECT_NAME(c.object_id)= d.TableName)
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
GO