指定した列名がどのテーブルで使用されているか検索するSQL

記事内に広告が含まれています。

SQLServerで指定した列名がどのテーブルで使用されているのか調べるSQLです。

指定した列名を利用しているテーブルを検索

SQLServerで指定した列名がどのテーブルで使用されているのか調べるSQLです。

列名の変更や型の整合性などを見る時にすべてのテーブルから列名を探しだすと楽にチェックすることができます。

実行するSQL

実行するSQLはINFORMATION_SCHEMA.COLUMNSから情報を検索します。

CREATE TABLE test_table1
(
     no           INT
    ,person_name  VARCHAR(20)
    ,age          SMALLINT
)
CREATE TABLE test_table2
(
     no           INT
    ,person_name  VARCHAR(10)
)


SELECT
     table_name                AS テーブル名
    ,column_name               AS カラム名
    ,data_type                 AS データタイプ
    ,character_maximum_length  AS データ長
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    column_name = 'person_name'
ORDER BY
    table_name


SELECT
     table_name                AS テーブル名
    ,column_name               AS カラム名
    ,data_type                 AS データタイプ
    ,character_maximum_length  AS データ長
FROM
    INFORMATION_SCHEMA.COLUMNS
WHERE
    column_name = 'age'
ORDER BY
    table_name


DROP TABLE test_table1
DROP TABLE test_table2

実行結果

実行結果は以下のとおりになります。

テーブル名      カラム名   データタイプ  データ長
test_table1  person_name    varchar         20
test_table2  person_name    varchar         10
テーブル名      カラム名   データタイプ  データ長
test_table1      age        smallint       NULL
タイトルとURLをコピーしました