Drei der Systemkatalogansichten in SQL Server enthalten sys.views
, sys.system_views
und sys.all_views
.
Diese drei Katalogansichten stellen alle Metadaten zu Ansichten in der Datenbank bereit, aber es gibt einen kleinen Unterschied zwischen den Ansichten.
Hier ist, was jeder tut:
sys.views
- Gibt alle benutzerdefinierten Ansichten zurück.
sys.system_views
- Gibt alle mit SQL Server gelieferten Systemansichten zurück.
sys.all_views
- Zeigt alle benutzerdefinierten und Systemansichten.
Mit anderen Worten, die letzte Ansicht kombiniert die Ergebnisse der beiden vorherigen Ansichten (sie gibt sowohl system als auch zurück benutzerdefinierte Ansichten).
Beispiel
Hier ist ein Beispiel, das den Unterschied in den Ergebnissen zeigt, die von diesen Ansichten zurückgegeben werden.
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;
Ergebnis:
+----------------+ | User Defined | |----------------| | 3 | +----------------+ (1 row affected) +----------+ | System | |----------| | 494 | +----------+ (1 row affected) +-------------+ | All Views | |-------------| | 497 | +-------------+ (1 row affected)
Wenn wir die Ergebnisse der ersten beiden Abfragen addieren, erhalten wir das gleiche Ergebnis wie sys.all_views
:
USE Music; SELECT (SELECT COUNT(*) FROM sys.views) + (SELECT COUNT(*) FROM sys.system_views) AS Result;
Ergebnis:
+----------+ | Result | |----------| | 497 | +----------+