テーブルのすべての列の名前を照会したいと思います。これを行う方法を見つけました。
しかし、私は知りたいのです。*Microsoft SQL Server (私の場合は2008)ではどのようにして実現できるのでしょうか?
これらの情報は、Information Schema viewsを照会することで、より多くの情報を得ることができます。
このサンプルクエリでは
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Customers'
これらすべてのDBオブジェクトに対して行うことができます。
ストアドプロシージャ sp_columns を使用すると、指定されたテーブルのすべての列に関する情報を返すことができます。詳細はこちらhttp://msdn.microsoft.com/en-us/library/ms176077.aspxをご覧ください。
また、SQLクエリを使用することもできます。このようなものがあると便利です。
SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')
あるいは、バリエーションとして、次のようなものがあります。
SELECT o.Name, c.Name
FROM sys.columns c
JOIN sys.objects o ON o.object_id = c.object_id
WHERE o.type = 'U'
ORDER BY o.Name, c.Name
これは、すべてのテーブルのすべてのカラムを、テーブル名、カラム名の順に取得します。