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