SQL Server や T-SQL を初めて学ぶ人のための学習サイトです。 便利なクエリーやチューニングの仕方なども掲載しています。
SQL Server 入門
T-SQL 入門
便利なT-SQL&クエリー集
SQL Server&T-SQLに関するコラム
サイト情報
MCTS: SQL Server 2008, Database Development
サイト内検索
カスタム検索
ホーム > 便利な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



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

© 2014 SQL Server 入門