2010-12-07 10 views
20

SQL Serverの場合INFORMATION_SCHEMAとsysobjects

INFORMATION_SCHEMAとsysobjectsの違いは何ですか?他の情報より多くの情報を提供するのか、通常は異なるものに使用するのか?

sysobjectsはsys.objectsと同じですか?そうでない場合、これらの違いは何ですか?

+5

'sysobjects'はSQL Server 2005のように廃止されました。代わりに' sys'スキーマのカタログビューを使用してください: 'sys.tables'、' sys.indexes'など –

答えて

30

INFORMATION_SCHEMAはSQL-92標準の一部であるため、sysobjectsとほぼ同じくらい頻繁に変更する可能性は低いです。

これらのビューは、SQL Serverメタデータのシステムテーブルに依存しない内部ビューを提供します。基礎となるシステムテーブルに大幅な変更が加えられた場合でも、これらは正しく動作します。

INFORMATION_SCHEMAは、sysobjects内のオブジェクトの実装の詳細が隠されているため、常に照会するほうがずっと優れています。

7

INFORMATION_SCHEMAはANSI標準であり、SQL Server実装では多少の程度です。 sysobjectsはSQL Server固有のものです。古いバージョンのSQL Serverではサポートされていませんでした。

したがって、INFORMATION_SCHEMAは移植性が高く(他のデータベースでも動作します)、sysobjectsよりやや使いやすくなります。必要な情報があればINFORMATION_SCHEMAに行きます。

sys.objects sysobjectsは、SQL 2000移植性のためだけに存在します。

+3

実際には 'sys.objects'は新しいSQL Server 2005バージョンのカタログビュー。 'sysobjects'(ドットなし)は、旧式の下位互換SQL Server 2000カタログテーブル –

+0

です。残念ながら、sys.sysobjectsを意味しました(残念ながら、元のテキストをコピーしました...)。 /en-us/library/ms177596.aspx –

関連する問題