SQL Serverのシステムカタログビューの3つには、sys.views
が含まれます。 、sys.system_views
、およびsys.all_views
。
これらの3つのカタログビューはすべて、データベース内のビューに関するメタデータを提供しますが、各ビューには微妙な違いがあります。
それぞれの機能は次のとおりです。
-
sys.views
- すべてのユーザー定義ビューを返します。
-
sys.system_views
- SQLServerに付属しているすべてのシステムビューを返します。
-
sys.all_views
- すべてのユーザー定義ビューとシステムビューを表示します。
つまり、最後のビューは前の2つのビューの結果を組み合わせたものです(システムとの両方を返します。 ユーザー定義のビュー)。
例
これらのビューによって返される結果の違いを示す例を次に示します。
USE Music; SELECT COUNT(*) AS [User Defined] FROM sys.views; SELECT COUNT(*) AS [System] FROM sys.system_views; SELECT COUNT(*) AS [All Views] FROM sys.all_views;
結果:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
最初の2つのクエリの結果を合計すると、sys.all_views
と同じ結果が得られます。 :
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
結果:
+----------+ | Result | |----------| | 497 | +----------+