sql >> Databáze >  >> RDS >> Sqlserver

Rozdíl mezi sys.views, sys.system_views a sys.all_views na serveru SQL Server

Tři zobrazení systémového katalogu na serveru SQL Server zahrnují sys.views , sys.system_views a sys.all_views .

Všechny tyto tři katalogové pohledy poskytují metadata o pohledech v databázi, ale mezi jednotlivými pohledy je jemný rozdíl.

Zde je to, co každý z nich dělá:

sys.views
Vrátí všechna uživatelsky definovaná zobrazení.
sys.system_views
Vrátí všechna zobrazení systému dodaná se serverem SQL.
sys.all_views
Zobrazuje všechna uživatelsky definovaná a systémová zobrazení.

Jinými slovy, poslední pohled kombinuje výsledky předchozích dvou pohledů (vrací systémové a uživatelsky definované pohledy).

Příklad

Zde je příklad, který ukazuje rozdíl ve výsledcích vrácených těmito zobrazeními.

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;

Výsledek:

+----------------+
| User Defined   |
|----------------|
| 3              |
+----------------+
(1 row affected)
+----------+
| System   |
|----------|
| 494      |
+----------+
(1 row affected)
+-------------+
| All Views   |
|-------------|
| 497         |
+-------------+
(1 row affected)

Pokud sečteme výsledky prvních dvou dotazů dohromady, dostaneme stejný výsledek jako sys.all_views :

USE Music;

SELECT 
(SELECT COUNT(*) FROM sys.views) +
(SELECT COUNT(*) FROM sys.system_views)
AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| 497      |
+----------+

  1. Anatomie uváznutí SQL Serveru a nejlepší způsoby, jak se jim vyhnout

  2. MySQL versus PDO

  3. Hibernate, Postgres &Array Type

  4. Plánování kapacity pro MySQL a MariaDB – dimenzování velikosti úložiště