Три от изгледите на системния каталог в SQL Server включват sys.views
, sys.system_views
и sys.all_views
.
Всички тези три каталожни изгледа предоставят метаданни за изгледи в базата данни, но има фина разлика между всеки изглед.
Ето какво прави всеки от тях:
sys.views
- Връща всички потребителски дефинирани изгледи.
sys.system_views
- Връща всички системни изгледи, доставени със SQL Server.
sys.all_views
- Показва всички потребителски и системни изгледи.
С други думи, последният изглед комбинира резултатите от предишните два изгледа (връща както системни и потребителски дефинирани изгледи).
Пример
Ето пример, който демонстрира разликата в резултатите, върнати от тези изгледи.
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)
Ако добавим резултатите от първите две заявки заедно, получаваме същия резултат като sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Резултат:
+----------+ | Result | |----------| | 497 | +----------+