Jeśli szukasz widoku wykazu, aby zwrócić informacje o parametrach w SQL Server, masz wybór. W szczególności możesz uzyskać informacje o parametrach z sys.parameters
, sys.system_parameters
i sys.all_parameters
.
Jednak prawdopodobnie będziesz chciał użyć tylko jednego z tych widoków, ponieważ istnieją między nimi różnice.
Oto oficjalna definicja każdego widoku:
sys.parameters
- Zawiera wiersz dla każdego parametru obiektu, który akceptuje parametry. Jeśli obiekt jest funkcją skalarną, istnieje również pojedynczy wiersz opisujący zwracaną wartość. Ten wiersz będzie miał wartość parameter_id równą 0.
sys.system_parameters
- Zawiera jeden wiersz dla każdego obiektu systemowego, który ma parametry.
sys.all_parameters
- Pokazuje sumę wszystkich parametrów, które należą do obiektów zdefiniowanych przez użytkownika lub systemowych.
Innymi słowy, ostatni widok łączy wyniki dwóch poprzednich widoków (zwraca informacje o parametrach zarówno z systemu i obiekty zdefiniowane przez użytkownika).
Przykład
Oto przykład, który pokazuje różnicę w wynikach zwracanych przez te widoki.
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;
Wynik:
+--------------+ | parameters | |--------------| | 7 | +--------------+ (1 row affected) +---------------------+ | system_parameters | |---------------------| | 7442 | +---------------------+ (1 row affected) +------------------+ | all_parameters | |------------------| | 7449 | +------------------+ (1 row affected)
W tym przypadku w tej bazie danych jest tylko 7 parametrów dla obiektów zdefiniowanych przez użytkownika. Reszta pochodzi z obiektów systemowych.
Jeśli dodamy wyniki dwóch pierwszych zapytań razem, otrzymamy ten sam wynik, co sys.all_views
:
SELECT (SELECT COUNT(*) FROM sys.parameters) + (SELECT COUNT(*) FROM sys.system_parameters) AS Result;
Wynik:
+----------+ | Result | |----------| | 7449 | +----------+