Om du letar efter en katalogvy för att returnera parameterinformation i SQL Server har du ett val. I synnerhet kan du få parameterinformation från sys.parameters
, sys.system_parameters
och sys.all_parameters
.
Men du kommer förmodligen bara att vilja använda en av dessa vyer, eftersom det finns skillnader mellan dem.
Här är den officiella definitionen av varje vy:
sys.parameters
- Innehåller en rad för varje parameter i ett objekt som accepterar parametrar. Om objektet är en skalär funktion finns det också en enda rad som beskriver returvärdet. Den raden kommer att ha ett parameter_id-värde på 0.
sys.system_parameters
- Innehåller en rad för varje systemobjekt som har parametrar.
sys.all_parameters
- Visar föreningen av alla parametrar som hör till användardefinierade eller systemobjekt.
Med andra ord, den sista vyn kombinerar resultaten från de två föregående vyn (den returnerar parameterinformation från både system och användardefinierade objekt).
Exempel
Här är ett exempel som visar skillnaden i resultat som returneras av dessa vyer.
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 det här fallet finns det bara 7 parametrar för användardefinierade objekt i denna databas. Resten är från systemobjekt.
Om vi lägger ihop resultaten av de två första frågorna får vi samma resultat som sys.all_views
:
SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Resultat:
+----------+ | Result | |----------| | 7449 | +----------+