SQL Server 入門 SQL Server 入門

指定したカラム名を持つテーブルを検索する

ホーム > 便利なT-SQL&クエリー集 > 指定したカラム名を持つテーブルを検索する

データベース内の指定したカラム名を持つテーブルを検索するには?

一度出来上がったシステムの分析や改修などをする時、案外活躍するのが 「キーワードでストアドプロシージャなどを検索する」クエリーや、今回ご紹介する「指定したカラム名を持つテーブルを検索する」 クエリーです。

指定したカラム名を持つテーブルを検索する

指定したカラム名を持つテーブルを検索するには何通りか方法がありますが、以下のクエリを使って、指定したカラム名を持つテーブルの名前をリストすることができます。

SELECT   T.name AS TableName,
         C.name AS ColumnName
FROM     sys.tables AS T
           INNER JOIN sys.columns AS C
            ON T.object_id = C.object_id
WHERE    C.name = 'カラム名'
ORDER BY T.name,
         C.name;

指定したカラム名を持つテーブルの検索結果1

sys.tables はデータベース内のユーザーが定義したテーブルオブジェクトを返すオブジェクトカタログビューです。

sys.columns はカラムを持つオブジェクト(テーブル、ビュー等)のカラム情報を返すオブジェクトカタログビューです。

sys.columns の object_id は、そのカラムが属するオブジェクトの object_id なので、そのカラムを使って sys.tables と内部結合し、テーブル名とカラム名を取得しています。


もちろん LIKE を使って、以下のようにカラム名の一部を指定することも可能です。

SELECT   T.name AS TableName,
         C.name AS ColumnName
FROM     sys.tables AS T
           INNER JOIN sys.columns AS C
            ON T.object_id = C.object_id
WHERE    C.name LIKE '%キーワード%'
ORDER BY T.name,
         C.name;

指定したカラム名を持つテーブルの検索結果2

SQL Server 関連のおすすめ書籍
ホーム > 便利なT-SQL&クエリー集 > 指定したカラム名を持つテーブルを検索する