In SQL Server 2008 R2 (neben anderen Versionen) gibt es Systemansichten, die automatisch mit jeder Datenbank bereitgestellt werden. Solange Sie mit der Datenbank verbunden sind, in der sich Ihre Tabelle befindet, können Sie eine Abfrage wie diese ausführen:
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')
Natürlich ist dies nur ein Ausgangspunkt. In jeder Datenbank sind viele andere Systemansichten und Spalten verfügbar. Sie finden sie über SQL Server Management Studio unter Views > "System Views