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

Rozdíl mezi sys.parameters, sys.system_parameters a sys.all_parameters v SQL Server

Pokud hledáte zobrazení katalogu pro vrácení informací o parametrech na SQL Server, máte na výběr. Informace o parametrech můžete získat zejména z sys.parameters , sys.system_parameters a sys.all_parameters .

Pravděpodobně však budete chtít použít pouze jeden z těchto pohledů, protože mezi nimi existují rozdíly.

Zde je oficiální definice každého zobrazení:

sys.parameters
Obsahuje řádek pro každý parametr objektu, který přijímá parametry. Pokud je objektem skalární funkce, existuje také jeden řádek popisující návratovou hodnotu. Tento řádek bude mít hodnotu parametru 0.
sys.system_parameters
Obsahuje jeden řádek pro každý systémový objekt, který má parametry.
sys.all_parameters
Zobrazuje spojení všech parametrů, které patří k uživatelem definovaným nebo systémovým objektům.

Jinými slovy, poslední pohled kombinuje výsledky předchozích dvou pohledů (vrací informace o parametrech ze systému a uživatelem definované objekty).

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 parameters
FROM sys.parameters;

SELECT COUNT(*) AS system_parameters
FROM sys.system_parameters;

SELECT COUNT(*) AS all_parameters
FROM sys.all_parameters;

Výsledek:

+--------------+
| parameters   |
|--------------|
| 7            |
+--------------+
(1 row affected)
+---------------------+
| system_parameters   |
|---------------------|
| 7442                |
+---------------------+
(1 row affected)
+------------------+
| all_parameters   |
|------------------|
| 7449             |
+------------------+
(1 row affected)

V tomto případě je v této databázi pouze 7 parametrů pro uživatelem definované objekty. Zbytek pochází ze systémových objektů.

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

SELECT 
(SELECT COUNT(*) FROM sys.parameters) +
(SELECT COUNT(*) FROM sys.system_parameters)
AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| 7449     |
+----------+

  1. Jak deklarovat proměnnou v MySQL?

  2. Štípací struny:Následné

  3. Jak vytvořit tabulku pomocí databáze sqlite v Androidu?

  4. Jak vytvořím sekvenci v MySQL?