Se você estiver procurando por uma exibição de catálogo para retornar informações de parâmetro no SQL Server, poderá escolher. Em particular, você pode obter informações de parâmetros de
sys.parameters
, sys.system_parameters
e sys.all_parameters
. No entanto, você provavelmente desejará usar apenas uma dessas visualizações, pois há diferenças entre elas.
Aqui está a definição oficial de cada visualização:
sys.parameters
- Contém uma linha para cada parâmetro de um objeto que aceita parâmetros. Se o objeto for uma função escalar, também haverá uma única linha descrevendo o valor de retorno. Essa linha terá um valor de parameter_id de 0.
sys.system_parameters
- Contém uma linha para cada objeto do sistema que possui parâmetros.
sys.all_parameters
- Mostra a união de todos os parâmetros que pertencem a objetos definidos pelo usuário ou do sistema.
Em outras palavras, a última visualização combina os resultados das duas visualizações anteriores (ela retorna informações de parâmetros do sistema e objetos definidos pelo usuário).
Exemplo
Aqui está um exemplo que demonstra a diferença nos resultados retornados por essas visualizações.
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)
Nesse caso, existem apenas 7 parâmetros para objetos definidos pelo usuário neste banco de dados. O resto são de objetos do sistema.
Se somarmos os resultados das duas primeiras consultas, obteremos o mesmo resultado que
sys.all_views
:SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Resultado:
+----------+ | Result | |----------| | 7449 | +----------+