SQLServerでテーブル名からカラム名を取得したい場合は、
INFORMATION_SCHEMA.COLUMNS を検索します。
サンプル
例)T_TESTテーブルの情報を取得する
1 2 3 |
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'T_TEST' |
テーブル名は大文字でも小文字でも構いません。
INFORMATION_SCHEMA.COLUMNSの内容
INFORMATION_SCHEMA.COLUMNSテーブルには下の内容を保持しています。
列名 | 意味 |
---|---|
TABLE_CATALOG | カタログ名 |
TABLE_SCHEMA | スキーマ名 |
TABLE_NAME | テーブル名 |
COLUMN_NAME | 列名 |
ORDINAL_POSITION | 列順 |
COLUMN_DEFAULT | 列のデフォルト値 |
IS_NULLABLE | NOT NULLかどうか (NO:NULL不許可 YES:NULL許可) |
DATA_TYPE | データ型 |
CHARACTER_MAXIMUM_LENGTH | データサイズ(桁数) |
CHARACTER_OCTET_LENGTH | データサイズ(バイト数) |
NUMERIC_PRECISION | 数値データの有効桁数 ※数値データ以外の場合はNULL |
NUMERIC_PRECISION_RADIX | 数値データの有効桁数の基数 ※数値データ以外の場合はNULL |
NUMERIC_SCALE | 数値データの桁数 ※数値データ以外の場合はNULL |
DATETIME_PRECISION | 日付データの小数部の桁数 ※datetime または smalldatetimeのみ |
CHARACTER_SET_CATALOG | 文字セットのカタログ名 |
CHARACTER_SET_SCHEMA | 常にNULL |
CHARACTER_SET_NAME | 文字セット名(例)UNICODE |
COLLATION_CATALOG | パラメーター照合のカタログ名 |
COLLATION_SCHEMA | 常にNULL |
COLLATION_NAME | パラメーター照合の名前 |
DOMAIN_CATALOG | 別名データ型が存在するデータベース |
DOMAIN_SCHEMA | 別名データ型を含むスキーマの名前 |
DOMAIN_NAME | ドメイン名 |
備考
- INFORMATION_SCHEMA.COLUMNSはシステム情報スキーマビューと呼ばれるテーブルで、システムの情報を保持しているビューです。