Dans SQL Server 2008 R2 (entre autres versions), des vues système sont fournies automatiquement avec chaque base de données. Tant que vous êtes connecté à la base de données où réside votre table, vous pouvez exécuter une requête comme celle-ci :
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')
Bien sûr, ce n'est qu'un point de départ. De nombreuses autres vues système et colonnes sont disponibles dans chaque base de données. Vous pouvez les trouver via SQL Server Management Studio sous Views > "System Views