sql >> Database >  >> RDS >> Sqlserver

Verschil tussen sys.parameters, sys.system_parameters en sys.all_parameters in SQL Server

Als u op zoek bent naar een catalogusweergave om parameterinformatie in SQL Server te retourneren, heeft u een keuze. In het bijzonder kunt u parameterinformatie krijgen van sys.parameters , sys.system_parameters , en sys.all_parameters .

U zult echter waarschijnlijk slechts één van deze weergaven willen gebruiken, omdat er verschillen zijn tussen hen.

Hier is de officiële definitie van elke weergave:

sys.parameters
Bevat een rij voor elke parameter van een object dat parameters accepteert. Als het object een scalaire functie is, is er ook een enkele rij die de geretourneerde waarde beschrijft. Die rij heeft een parameter_id waarde van 0.
sys.system_parameters
Bevat één rij voor elk systeemobject dat parameters heeft.
sys.all_parameters
Toont de unie van alle parameters die behoren tot door de gebruiker gedefinieerde of systeemobjecten.

Met andere woorden, de laatste weergave combineert de resultaten van de vorige twee weergaven (het retourneert parameterinformatie van zowel systeem en door de gebruiker gedefinieerde objecten).

Voorbeeld

Hier is een voorbeeld dat het verschil in resultaten van deze weergaven laat zien.

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;

Resultaat:

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

In dit geval zijn er slechts 7 parameters voor door de gebruiker gedefinieerde objecten in deze database. De rest is van systeemobjecten.

Als we de resultaten van de eerste twee zoekopdrachten bij elkaar optellen, krijgen we hetzelfde resultaat als sys.all_views :

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

Resultaat:

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

  1. Cronjob of MySQL-event?

  2. is het mogelijk om EXISTS direct als bit te selecteren?

  3. Hoe CSV-bestandsgegevens importeren in een PostgreSQL-tabel?

  4. MySQL Cross Server Select Query