Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Różnica między sys.parameters, sys.system_parameters i sys.all_parameters w programie SQL Server

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     |
+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównanie ciągów SQL uwzględniających wielkość liter

  2. Rekurencja CTE w celu uzyskania hierarchii drzewa

  3. Zrozumienie rozmiaru pamięci „datetimeoffset” w SQL Server

  4. Konwertuj milisekundy UTC na DATETIME w serwerze SQL

  5. Utwórz tabelę tymczasową w SQL Server