Si está buscando una vista de catálogo para devolver información de parámetros en SQL Server, tiene una opción. En particular, puede obtener información de parámetros de sys.parameters
, sys.system_parameters
y sys.all_parameters
.
Sin embargo, probablemente solo desee utilizar una de estas vistas, ya que existen diferencias entre ellas.
Esta es la definición oficial de cada vista:
sys.parameters
- Contiene una fila para cada parámetro de un objeto que acepta parámetros. Si el objeto es una función escalar, también hay una única fila que describe el valor de retorno. Esa fila tendrá un valor de parámetro_id de 0.
sys.system_parameters
- Contiene una fila para cada objeto del sistema que tiene parámetros.
sys.all_parameters
- Muestra la unión de todos los parámetros que pertenecen a objetos del sistema o definidos por el usuario.
En otras palabras, la última vista combina los resultados de las dos vistas anteriores (devuelve información de parámetros del sistema y objetos definidos por el usuario).
Ejemplo
Este es un ejemplo que demuestra la diferencia en los resultados devueltos por estas vistas.
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;
Resultado:
+--------------+ | parameters | |--------------| | 7 | +--------------+ (1 row affected) +---------------------+ | system_parameters | |---------------------| | 7442 | +---------------------+ (1 row affected) +------------------+ | all_parameters | |------------------| | 7449 | +------------------+ (1 row affected)
En este caso, solo hay 7 parámetros para objetos definidos por el usuario en esta base de datos. El resto son de objetos del sistema.
Si sumamos los resultados de las dos primeras consultas, obtenemos el mismo resultado que sys.all_views
:
SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Resultado:
+----------+ | Result | |----------| | 7449 | +----------+