Tre delle visualizzazioni del catalogo di sistema in SQL Server includono sys.views
, sys.system_views
e sys.all_views
.
Queste tre viste del catalogo forniscono tutte metadati sulle viste nel database, ma c'è una sottile differenza tra ciascuna vista.
Ecco cosa fa ciascuno:
sys.views
- Restituisce tutte le viste definite dall'utente.
sys.system_views
- Restituisce tutte le viste di sistema fornite con SQL Server.
sys.all_views
- Mostra tutte le viste definite dall'utente e di sistema.
In altre parole, l'ultima vista combina i risultati delle due viste precedenti (restituisce sia il sistema che viste definite dall'utente).
Esempio
Ecco un esempio che dimostra la differenza nei risultati restituiti da queste visualizzazioni.
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;
Risultato:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Se aggiungiamo insieme i risultati delle prime due query, otteniamo lo stesso risultato di sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Risultato:
+----------+ | Result | |----------| | 497 | +----------+