2012-03-19 7 views
4

簡単なはずですが、取得できません。データベースでSQL Server sys.objectsをフィルタリングする

sys.objectsの結果をデータベース(名前またはIDのいずれか)でフィルタリングします。私はsys.databasesに参加しなければならないと考えましたが、可能ではないようです。私はSQL Serverのドキュメントに行ったが、何か助けにならなかった。

私には何が欠けていますか?

+0

からnameですとにかく**現在**データベースからのデータベースオブジェクト - なぜデータベースでフィルタリングする必要がありますか?実際に私には意味がありません... –

答えて

12

各データベースあなたはsys.databasesからデータベースを取得する必要がありますので、独自のsys.objectsを持っており、

select from {dbname}.sys.objects 

{dbnameは}あなたはいつものみ参照sys.databases

+1

また、 'sys.objects'の代わりに' sys.tables'、 'sys.procedures'などのより焦点を絞ったビューを使うことをお勧めします。 (すでに注目しているビューからはっきりしているので)オブジェクトタイプを指定するには –

+0

[OK]を、私は 'sysrowsetcolumns、' sysowners 'のようなオブジェクトで誤解されました。それらはsys.objectsには表示されますが、Management Studioの "System Tables"ノードやsys.tablesには表示されませんので、他のデータベースから来たと思いました。それは、私のdbの一部です。 – MatteoSp