INFORMATION_SCHEMA.COLUMNSビューを使用してテーブルのカラム名を返す
SQL、SQL Server、T-SQLでテーブルのカラム名を返す方法はいくつかあります。 ここでは、代表的な3つの方法を紹介します。
INFORMATION_SCHEMA.COLUMNS
ビューは、データベース内のすべてのテーブルのカラム情報を含む標準ビューです。 このビューを使用して、テーブルのカラム名を次のように取得できます。
SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'テーブル名';
例
SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '社員';
このクエリは、社員
テーブルのカラム名をすべて返します。
方法2:sys.columnsシステムテーブルを使用する
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('テーブル名');
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('社員');
方法3:DESCRIBEステートメントを使用する
DESCRIBE
ステートメントは、テーブルの構造情報を表示するステートメントです。 このステートメントを使用して、テーブルのカラム名を次のように取得できます。
DESCRIBE テーブル名;
DESCRIBE 社員;
上記以外にも、次のような方法でテーブルのカラム名を返すことができます。
- データベース管理ツールを使用する
- プログラミング言語を使用してデータベースにアクセスする
方法1:INFORMATION_SCHEMA.COLUMNSビューを使用する
SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '社員';
社員ID
名前
部署
役職
入社日
方法2:sys.columnsシステムテーブルを使用する
SELECT name
FROM sys.columns
WHERE object_id = OBJECT_ID('社員');
出力例
社員ID
名前
部署
役職
入社日
方法3:DESCRIBEステートメントを使用する
DESCRIBE 社員;
Name Type Null
-------------- ----------- ----
社員ID int NO
名前 varchar(50) NO
部署 varchar(50) NO
役職 varchar(50) NO
入社日 date NO
補足
- 上記のサンプルコードは、SQL Server 2019で実行しています。
- 出力例は、
社員
テーブルの構造によって異なります。
テーブルのカラム名を返すその他の方法
データベース管理ツールを使用する
多くのデータベース管理ツールには、テーブルのカラム名を簡単に表示できる機能が備わっています。 例えば、SQL Server Management Studio (SSMS) では、以下の手順でテーブルのカラム名を返すことができます。
- SSMSでデータベースに接続します。
- オブジェクトエクスプローラーで、テーブルを展開します。
- テーブル名を右クリックし、「列の表示」を選択します。
プログラミング言語を使用してデータベースにアクセスする
C#、Java、Pythonなどのプログラミング言語を使用してデータベースにアクセスし、テーブルのカラム名を返すことができます。 具体的な方法は、使用している言語とデータベースによって異なりますが、一般的には以下のような手順になります。
- 必要なデータベースライブラリをプログラムに読み込みます。
- データベースへの接続を開きます。
- テーブルのカラム情報取得用のクエリを実行します。
- クエリ結果からカラム名を取得します。
その他の特殊な方法
sys.dm_db_partition_columns
システムテーブルを使用する (パーティションテーブルの場合)sp_help
ストアドプロシージャを使用するxp_cmdshell
コマンドを使用する (ただし、セキュリティ上のリスクがあるため、推奨されない)
これらの方法は、特殊な状況で使用されることが多くなります。
- [データベース管理ツールのドキュメント]
- [プログラミング言語のデータベースライブラリのドキュメント]
sql sql-server t-sql