SQL Server 2008 R2 (他のバージョンの中でも特に) には、すべてのデータベースで自動的に提供されるシステム ビューがあります。テーブルが存在するデータベースに接続している限り、次のようなクエリを実行できます:
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')
もちろん、これは出発点にすぎません。すべてのデータベースで利用できる他の多くのシステム ビューと列があります。これらは、SQL Server Management Studio の Views > "System Views
" で見つけることができます。