In SQL Server 2008 R2 (tra le altre versioni), sono disponibili viste di sistema fornite automaticamente con ogni database. Finché sei connesso al database in cui risiede la tua tabella, puoi eseguire una query come questa:
DECLARE @TableViewName NVARCHAR(128)
SET @TableViewName=N'MyTableName'
SELECT b.name AS ColumnName, c.name AS DataType,
b.max_length AS Length, c.Precision, c.Scale, d.value AS Description
FROM sys.all_objects a
INNER JOIN sys.all_columns b
ON a.object_id=b.object_id
INNER JOIN sys.types c
ON b.user_type_id=c.user_type_id
LEFT JOIN sys.extended_properties d
ON a.object_id=d.major_id AND b.column_id=d.minor_id AND d.name='MS_Description'
WHERE [email protected]
AND a.type IN ('U','V')
Ovviamente questo è solo un punto di partenza. Ci sono molte altre viste di sistema e colonne disponibili in ogni database. Puoi trovarli tramite SQL Server Management Studio in Views > "System Views