Si vous recherchez une vue de catalogue pour renvoyer des informations sur les paramètres dans SQL Server, vous avez le choix. En particulier, vous pouvez obtenir des informations sur les paramètres de sys.parameters
, sys.system_parameters
, et sys.all_parameters
.
Cependant, vous ne voudrez probablement utiliser qu'une seule de ces vues, car il existe des différences entre elles.
Voici la définition officielle de chaque vue :
sys.parameters
- Contient une ligne pour chaque paramètre d'un objet qui accepte des paramètres. Si l'objet est une fonction scalaire, il y a aussi une seule ligne décrivant la valeur de retour. Cette ligne aura une valeur de parameter_id de 0.
sys.system_parameters
- Contient une ligne pour chaque objet système qui a des paramètres.
sys.all_parameters
- Affiche l'union de tous les paramètres qui appartiennent à des objets définis par l'utilisateur ou système.
En d'autres termes, la dernière vue combine les résultats des deux vues précédentes (elle renvoie des informations sur les paramètres du système et objets définis par l'utilisateur).
Exemple
Voici un exemple qui illustre la différence dans les résultats renvoyés par ces vues.
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;
Résultat :
+--------------+ | parameters | |--------------| | 7 | +--------------+ (1 row affected) +---------------------+ | system_parameters | |---------------------| | 7442 | +---------------------+ (1 row affected) +------------------+ | all_parameters | |------------------| | 7449 | +------------------+ (1 row affected)
Dans ce cas, il n'y a que 7 paramètres pour les objets définis par l'utilisateur dans cette base de données. Le reste provient d'objets système.
Si nous additionnons les résultats des deux premières requêtes ensemble, nous obtenons le même résultat que sys.all_views
:
SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Résultat :
+----------+ | Result | |----------| | 7449 | +----------+