2016-04-13 16 views
4

フィールドがどのテーブルにあるのかを調べる最も簡単な方法は何ですか?私はちょうど新しい会社で働き始めましたが、DBのスキーマにはまだ精通していません。私は頻繁に私が検索する必要があるメトリックや次元があり、非常に大きなDBを持っているので非常に時間がかかるようです。データベースのフィールドを検索

これはあいまいな質問であり、最善の答えはありませんが、私は、この場合、人々が長年にわたって学んできたベストプラクティス、ヒント、トリックを探しています。

+0

'select * from information_schema.columns where column_name = 'あなたのカラム名' ' –

+1

このようなhttp://stackoverflow.com/questions/4849652/find-all-tables-containing-column-with-specified-name – Chris

答えて

4

あなたはそのためのsys.columnsを使用することができます。

SELECT 
    OBJECT_NAME(c.object_id) 
FROM sys.columns c 
WHERE c.name = <column_name> 
1

私はフィールドを探していたとき、私は通常、次のクエリを使用します。

SELECT * FROM information_schema.COLUMNS c WHERE c.COLUMN_NAME LIKE 'search_field%' 

選択したいDBがあることを確認してください。

あなたが探しているテーブルを見つけたら、DBダイアグラムを作成し、関連するフィールドを表示すると、既に持っているテーブルにそのテーブルを結合する方法を見ることができます。

+6

[INFORMATION_SCHEMAビューに対するケース](http://sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/the-case-against-information-schema-views.aspx) –

+1

フェリックスさん、これは大きいです記事。要するに、Jessicaとprdpの答えに問題はありますか? –

+2

@Victor列が使用されているテーブルを検索するだけの場合は、これで問題はありません。しかし、いくつかの追加情報が必要な場合、 'INFORATION_SCHEMA'はそれらをすべて提供しません。 –

関連する問題