W SQL Server 2008 R2 (między innymi) z każdą bazą danych są dostarczane automatycznie widoki systemowe. Dopóki jesteś połączony z bazą danych, w której znajduje się Twoja tabela, możesz uruchomić zapytanie w ten sposób:
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')
Oczywiście to tylko punkt wyjścia. W każdej bazie danych dostępnych jest wiele innych widoków i kolumn systemowych. Można je znaleźć za pośrednictwem SQL Server Management Studio w sekcji Views > "System Views