Se stai cercando una vista catalogo per restituire informazioni sui parametri in SQL Server, hai la possibilità di scegliere. In particolare, puoi ottenere informazioni sui parametri da sys.parameters
, sys.system_parameters
e sys.all_parameters
.
Tuttavia, probabilmente vorrai utilizzare solo una di queste viste, poiché ci sono differenze tra loro.
Ecco la definizione ufficiale di ciascuna vista:
sys.parameters
- Contiene una riga per ogni parametro di un oggetto che accetta parametri. Se l'oggetto è una funzione scalare, c'è anche una singola riga che descrive il valore restituito. Quella riga avrà un valore parameter_id pari a 0.
sys.system_parameters
- Contiene una riga per ogni oggetto di sistema che ha parametri.
sys.all_parameters
- Mostra l'unione di tutti i parametri che appartengono a oggetti definiti dall'utente o di sistema.
In altre parole, l'ultima vista combina i risultati delle due viste precedenti (restituisce le informazioni sui parametri sia dal sistema che oggetti definiti dall'utente).
Esempio
Ecco un esempio che dimostra la differenza nei risultati restituiti da queste visualizzazioni.
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;
Risultato:
+--------------+ | parameters | |--------------| | 7 | +--------------+ (1 row affected) +---------------------+ | system_parameters | |---------------------| | 7442 | +---------------------+ (1 row affected) +------------------+ | all_parameters | |------------------| | 7449 | +------------------+ (1 row affected)
In questo caso, ci sono solo 7 parametri per gli oggetti definiti dall'utente in questo database. Il resto proviene da oggetti di sistema.
Se aggiungiamo insieme i risultati delle prime due query, otteniamo lo stesso risultato di sys.all_views
:
SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Risultato:
+----------+ | Result | |----------| | 7449 | +----------+