Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Разлика между sys.parameters, sys.system_parameters и sys.all_parameters в SQL Server

Ако търсите изглед на каталог, за да върнете информация за параметрите в SQL Server, имате избор. По-специално, можете да получите информация за параметрите от sys.parameters , sys.system_parameters и sys.all_parameters .

Вероятно обаче ще искате да използвате само един от тези изгледи, тъй като има разлики между тях.

Ето официалната дефиниция на всеки изглед:

sys.parameters
Съдържа ред за всеки параметър на обект, който приема параметри. Ако обектът е скаларна функция, има и един ред, описващ връщаната стойност. Този ред ще има стойност на parameter_id от 0.
sys.system_parameters
Съдържа един ред за всеки системен обект, който има параметри.
sys.all_parameters
Показва обединението на всички параметри, които принадлежат на дефинирани от потребителя или системни обекти.

С други думи, последният изглед комбинира резултатите от предишните два изгледа (връща информация за параметрите както от и системата дефинирани от потребителя обекти).

Пример

Ето пример, който демонстрира разликата в резултатите, върнати от тези изгледи.

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;

Резултат:

+--------------+
| parameters   |
|--------------|
| 7            |
+--------------+
(1 row affected)
+---------------------+
| system_parameters   |
|---------------------|
| 7442                |
+---------------------+
(1 row affected)
+------------------+
| all_parameters   |
|------------------|
| 7449             |
+------------------+
(1 row affected)

В този случай има само 7 параметъра за дефинирани от потребителя обекти в тази база данни. Останалите са от системни обекти.

Ако добавим резултатите от първите две заявки заедно, получаваме същия резултат като sys.all_views :

SELECT 
(SELECT COUNT(*) FROM sys.parameters) +
(SELECT COUNT(*) FROM sys.system_parameters)
AS Result;

Резултат:

+----------+
| 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. Заявка, за да получите само числа от низ

  2. Какво представлява ограничението за проверка в SQL Server - SQL Server / TSQL урок, част 82

  3. Разберете на каква операционна система работи SQL Server (пример за T-SQL)

  4. Как да преименувате всички ограничения по подразбиране според стандартите за именуване или конвенцията за именуване в SQL Server - SQL Server / TSQL урок, част 93

  5. Има ли начин да получите списък с всички текущи временни таблици в SQL Server?