データベースに作成されているテーブル名と列名の一覧を取得する

動作環境

SQL Server
  • SQL Server 2008
  • SQL Server 2008 R2
  • SQL Server 2012
  • SQL Server 2014

動作確認環境

SQL Server SQL Server 2008 R2

内容

通常は SQL にテーブル名や列名を入れて SELECT したり INSERT したりしますが、テータベースに作成されているテーブルや列の名前を SQL で取得することもできます。これができるとテーブルや列が増えても、自動でそれに追従する動的な SQL を作成することもできます。

テーブルや列の名前の一覧を取得する SQL は以下のようになります。他にも情報は取れますが、ここでは最小限の構成としています。

select
  t.name as table_name
 ,c.name as column_name
from sys.tables as t
inner join sys.columns as c
  on c.object_id = t.object_id
order by t.name, c.object_id

結果は次のように表示されます。