Tre af systemkatalogvisningerne i SQL Server inkluderer sys.views
, sys.system_views
, og sys.all_views
.
Disse tre katalogvisninger giver alle metadata om visninger i databasen, men der er en subtil forskel mellem hver visning.
Her er, hvad hver enkelt gør:
sys.views
- Returnerer alle brugerdefinerede visninger.
sys.system_views
- Returnerer alle systemvisninger, der er leveret med SQL Server.
sys.all_views
- Viser alle brugerdefinerede og systemvisninger.
Med andre ord, den sidste visning kombinerer resultaterne af de to foregående visninger (den returnerer både system og brugerdefinerede visninger).
Eksempel
Her er et eksempel, der viser forskellen i resultater, der returneres af disse visninger.
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;
Resultat:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Hvis vi lægger resultaterne af de to første forespørgsler sammen, får vi det samme resultat som sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Resultat:
+----------+ | Result | |----------| | 497 | +----------+