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

Forskellen mellem sys.parameters, sys.system_parameters og sys.all_parameters i SQL Server

Hvis du leder efter en katalogvisning til at returnere parameteroplysninger i SQL Server, har du et valg. Især kan du få parameteroplysninger fra sys.parameters , sys.system_parameters , og sys.all_parameters .

Du vil dog sandsynligvis kun bruge et af disse synspunkter, da der er forskelle mellem dem.

Her er den officielle definition af hver visning:

sys.parameters
Indeholder en række for hver parameter i et objekt, der accepterer parametre. Hvis objektet er en skalarfunktion, er der også en enkelt række, der beskriver returværdien. Denne række vil have en parameter_id-værdi på 0.
sys.system_parameters
Indeholder én række for hvert systemobjekt, der har parametre.
sys.all_parameters
Viser foreningen af ​​alle parametre, der hører til brugerdefinerede eller systemobjekter.

Med andre ord kombinerer den sidste visning resultaterne af de to foregående visninger (den returnerer parameteroplysninger fra både system og brugerdefinerede objekter).

Eksempel

Her er et eksempel, der viser forskellen i resultater, der returneres af disse visninger.

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;

Resultat:

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

I dette tilfælde er der kun 7 parametre for brugerdefinerede objekter i denne database. Resten er fra systemobjekter.

Hvis vi lægger resultaterne af de to første forespørgsler sammen, får vi det samme resultat som sys.all_views :

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

Resultat:

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

  1. Hvad er nyt i Postgres-XL 9.6

  2. Sådan tilføjes identitetskolonne til tabel med TSQL og GUI i SQL Server - SQL Server / T-SQL vejledning del 40

  3. Sådan udtrækkes en understreng fra en streng i T-SQL

  4. GROUP_CONCAT BESTIL AF