Drie van de systeemcatalogusweergaven in SQL Server bevatten sys.views
, sys.system_views
, en sys.all_views
.
Deze drie catalogusweergaven bieden allemaal metadata over weergaven in de database, maar er is een subtiel verschil tussen elke weergave.
Dit is wat ze allemaal doen:
sys.views
- Retourneert alle door de gebruiker gedefinieerde weergaven.
sys.system_views
- Retourneert alle systeemweergaven die bij SQL Server zijn geleverd.
sys.all_views
- Toont alle door de gebruiker gedefinieerde en systeemweergaven.
Met andere woorden, de laatste weergave combineert de resultaten van de vorige twee weergaven (het retourneert zowel systeem en door de gebruiker gedefinieerde weergaven).
Voorbeeld
Hier is een voorbeeld dat het verschil in resultaten van deze weergaven laat zien.
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;
Resultaat:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Als we de resultaten van de eerste twee zoekopdrachten bij elkaar optellen, krijgen we hetzelfde resultaat als sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Resultaat:
+----------+ | Result | |----------| | 497 | +----------+