Tre av systemkatalogvyerna i SQL Server inkluderar sys.views
, sys.system_views
och sys.all_views
.
Dessa tre katalogvyer tillhandahåller alla metadata om vyer i databasen, men det finns en subtil skillnad mellan varje vy.
Så här gör var och en:
sys.views
- Returnerar alla användardefinierade vyer.
sys.system_views
- Returnerar alla systemvyer som levereras med SQL Server.
sys.all_views
- Visar alla användardefinierade och systemvyer.
Med andra ord, den sista vyn kombinerar resultaten från de två föregående vyn (den returnerar både system och användardefinierade vyer).
Exempel
Här är ett exempel som visar skillnaden i resultat som returneras av dessa vyer.
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)
Om vi lägger ihop resultaten av de två första frågorna får vi samma resultat som sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Resultat:
+----------+ | Result | |----------| | 497 | +----------+