2016-05-02 1 views
0

特定の列を持つテーブルを検索しようとしています。私はこれらのテーブルを作成しなかったので、スクリプトで参照する必要のあるテーブルを見つける必要があります。T-SQLオブジェクトエクスプローラでテーブルが表示されない

私はこのクエリを使用し

-

select * from INFORMATION_SCHEMA.COLUMNS 
where column_name like '%someColumn%' 
私が見ることができるこのことから

TABLE_CATALOGTABLE_SCHEMATABLE_NAME

さんが言ってみましょう:

TABLE_CATALOG = MYCAT 
TABLE_SCHEMA = dbo 
TABLE_NAME = myTable 

私はオブジェクトエクスプローラに移動し、拡大テーブルMYCATのテーブルをスクロールしてテーブルをスクロールしますが、そこにはmyTableがリストされていません。しかし、私が望むなら、私はmyTableにデータを問い合わせることができます。

私がこれらのテーブルを見ない理由は何ですか?どこで見つけることができますか?

+0

クエリを実行するときは、右のデータベースを指しています'INFORMATION_SCHEMA.COLUMNS'に? – Abhinav

+0

@Abhinav私は今ではなかったが、MYCAT.INFORMATION_SCHEMAは同じ結果を得た。 – Adjit

+0

@Adjitどのようにあなたのテーブルが存在するかを知っていますか? – JosephStyons

答えて

0

INFORMATION_SCHEMA.COLUMNSを使用すると、データベース内のすべての表とビューのすべての列に関する情報を取得できます。

あなたは、このクエリで確認することができます:TABLE_CATALOG、TABLE_SCHEMAおよびTABLE_NAMEを見つけるとタイプを取得する

SELECT SCHEMA_NAME(o.schema_id) AS schema_name 
,o.name AS object_name 
,type_desc FROM sys.objects AS o INNER JOIN sys.columns AS c ON o.object_id = c.object_id WHERE c.name like '%someColumn%' 

もう一つの方法は次のとおりです。

select * ,t.TABLE_TYPE from INFORMATION_SCHEMA.COLUMNS c join INFORMATION_SCHEMA.TABLES t on c.TABLE_NAME=t.TABLE_NAME where column_name like '%someColumn%' 
関連する問題