En SQL Server 2008 R2 (entre otras versiones), hay vistas del sistema proporcionadas automáticamente con cada base de datos. Mientras esté conectado a la base de datos donde reside su tabla, puede ejecutar una consulta como esta:
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')
Por supuesto, esto es sólo un punto de partida. Hay muchas otras vistas y columnas del sistema disponibles en cada base de datos. Puede encontrarlos a través de SQL Server Management Studio en Views > "System Views