はじめに
業務上でSQLServerManagementStudioで検索したいカラム名を持つテーブルを探す必要が生じた。
ネット上で色々と調べて出て来たSQLを参考にしても自分の環境では全然上手くいかなかったのだが、その後もトライ&エラーを繰り返しなんとか上手くいったので他の誰かの役に立てばと思い、ここに備忘録として残します。
それでは本題
いきなりですが、こちらがそのSQLになります。
SELECT
DISTINCT
TABLE_CATALOG AS 'データベース名'
,TABLE_SCHEMA AS 'スキーマ名'
,TABLE_NAME AS 'テーブル名'
,COLUMN_NAME AS 'カラム名'
FROM
(検索したいデータベース名).INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME LIKE '%検索したい文字列%'
※補足ですが、INFORMATION_SCHEMA.TABLESを追加してTABLE_TYPEをSELECTに追加するとさらにTABLEかVIEWかなどが分かるようになりますが、検索結果も冗長になるのでご注意ください。
また、その場合はINFORMATION_SCHEMA.TABLESとINFORMATION_SCHEMA.COLUMNSで同じ列名が存在しますので、上記のSQLのSELECTにある4つはINFORMATION_SCHEMA.COLUMNSの列別名を付与しないと意図しない結果が出ますので合わせてご注意ください。
おわりに
世の中はMySQLが主流だと思いますが、自分の職場はSQLServerを主に使用しています。
SQLServerもSQLServerManagementStudioも難しいですがこれからも日々精進していきます。
ここまでお付き合いいただきありがとうございました。