指定した列を持っているテーブルの一覧を取得する

列の桁数を変更したいことも
あると思います!

その場合、
他のテーブルの同名の列も変更する必要が
あるかもしれません!

そのために、
指定した列を持っているテーブルの一覧を
取得して確認しましょう!

「INFORMATION_SCHEMA.COLUMNS」等を使用することで、
取得/確認することが出来ます!

スポンサーリンク

「INFORMATION_SCHEMA.COLUMNS」とは

「システム情報スキーマ ビュー」の1つです。
列に関する情報を持っています。

スポンサーリンク

SQL

「システム情報スキーマ ビュー」である以下の2つを使用します。
・INFORMATION_SCHEMA.COLUMNS
・INFORMATION_SCHEMA.TABLES

SELECT
	C.TABLE_CATALOG AS 'DB名',
	C.TABLE_SCHEMA AS 'スキーマ名',
	C.TABLE_NAME AS 'テーブル名',
	C.COLUMN_NAME AS 'カラム名',
	C.DATA_TYPE AS '型名',
	C.CHARACTER_MAXIMUM_LENGTH AS '桁数'
FROM
	INFORMATION_SCHEMA.COLUMNS C
INNER JOIN INFORMATION_SCHEMA.TABLES T
	ON T.TABLE_CATALOG = C.TABLE_CATALOG AND
	   T.TABLE_SCHEMA = C.TABLE_SCHEMA AND
	   T.TABLE_NAME = C.TABLE_NAME
WHERE
	T.TABLE_TYPE = 'BASE TABLE' AND --TABLEで絞る(VIEWを除く) 
	C.COLUMN_NAME = 'id'            --調査対象のカラム名

対象をテーブルのみ(ビューは対象外)にするために、「INFORMATION_SCHEMA.TABLES」も使用しています。

WHERE句の「C.COLUMN_NAME」に、確認したい列を指定します。
上記では例として列名「id」を指定します。

スポンサーリンク

実行結果

指定した列を持っているテーブルの一覧を取得できました。

タイトルとURLをコピーしました