sql >> Database teknologi >  >> RDS >> Sqlserver

Forskellen mellem sys.views, sys.system_views og sys.all_views i SQL Server

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

  1. Returner partitionsnummeret for hver række, når du forespørger en partitioneret tabel i SQL Server (T-SQL)

  2. God praksis at åbne/lukke forbindelser i en asp.net-applikation?

  3. Sådan ændres max_allowed_packet size

  4. Sådan vælger du indlejret JSON i SQL Server med OPENJSON