i use this when i make a data dictionarySELECT distinct C.ORDINAL_POSITION, C.COLUMN_NAME AS [Column], C.IS_NULLABLE AS [Allows Nulls?], C.DATA_TYPE AS [Type], e.value AS column_description, sc.length , cc.constraint_name, case when tc.constraint_name like 'FK_%' then replace(tc.constraint_name, 'FK_' + tc.table_name + '_', '') else NULL end as fktargetFROM INFORMATION_SCHEMA.Tables T JOIN INFORMATION_SCHEMA.Columns C ON T.TABLE_NAME = C.TABLE_NAME full outer join (syscolumns sc inner join sysobjects so on sc.id = so.id) on sc.name = c.column_name full OUTER JOIN ::fn_listextendedproperty(N'MS_Description', N'user', N'dbo', N'table', @name, N'column', NULL) e ON sc.name = e.objname full outer join information_schema.constraint_column_usage cc on cc.column_name = e.objname and cc.table_name = @name full outer join information_schema.table_constraints tc on cc.constraint_name = tc.constraint_name WHERE T.TABLE_NAME = @name and so.name = @name and ((tc.constraint_name not like 'CK%') or (tc.constraint_name is null)) ORDER BY C.ORDINAL_POSITION
where @name = table namesimple enough to loop through all your talbes. same for databases i guess.
[Signature]For fast help, follow this link:http://weblogs.sqlteam.com/brettk/archive/2005/05/25.aspxLearn SQLhttp://www.sql-tutorial.net/ http://www.firstsql.com/tutor.htm http://www.w3schools.com/sql/default.asp