sql >> Databasteknik >  >> RDS >> Sqlserver

Skillnaden mellan sys.views, sys.system_views och sys.all_views i SQL Server

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      |
+----------+

  1. pgDash Diagnostics Alternatives - PostgreSQL Query Management med ClusterControl

  2. Hur byter man ut flera tecken i SQL?

  3. Hur man konverterar från ett datumformat till ett annat i SQL Server med CONVERT()

  4. MySQL Performance – 5 parametrar från konfigurationsfilen