Tři zobrazení systémového katalogu na serveru SQL Server zahrnují sys.views
, sys.system_views
a sys.all_views
.
Všechny tyto tři katalogové pohledy poskytují metadata o pohledech v databázi, ale mezi jednotlivými pohledy je jemný rozdíl.
Zde je to, co každý z nich dělá:
sys.views
- Vrátí všechna uživatelsky definovaná zobrazení.
sys.system_views
- Vrátí všechna zobrazení systému dodaná se serverem SQL.
sys.all_views
- Zobrazuje všechna uživatelsky definovaná a systémová zobrazení.
Jinými slovy, poslední pohled kombinuje výsledky předchozích dvou pohledů (vrací systémové a uživatelsky definované pohledy).
Příklad
Zde je příklad, který ukazuje rozdíl ve výsledcích vrácených těmito zobrazeními.
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;
Výsledek:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Pokud sečteme výsledky prvních dvou dotazů dohromady, dostaneme stejný výsledek jako sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Výsledek:
+----------+ | Result | |----------| | 497 | +----------+