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

Как да използвате съхранената процедура „sp_server_info“ в SQL Server

В SQL Server sp_server_info системната съхранена процедура връща списък с имена на атрибути и съответстващи стойности за SQL Server, шлюза на базата данни или основния източник на данни. Връща подмножество от информацията, предоставена от SQLGetInfo в ODBC.

По принцип ви позволява да видите информация за SQL Server.

Синтаксис

Синтаксисът е така:

sp_server_info [[@attribute_id = ] 'attribute_id']

(по избор) @attribute_id аргумент ви позволява да стесните резултатите само до един конкретен атрибут.

Пример 1 – Връщане на всички атрибути

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

EXEC sp_server_info;

Може да се изпълнява и по следния начин:

sp_server_info;

Ето резултата на моя екземпляр на SQL Server 2019:

+----------------+------------------------+---------------------------------------------------------------------+
| attribute_id   | attribute_name         | attribute_value                                                     |
|----------------+------------------------+---------------------------------------------------------------------|
| 1              | DBMS_NAME              | Microsoft SQL Server                                                |
| 2              | DBMS_VER               | Microsoft SQL Server 2019 - 15.0.1800.32                            |
| 10             | OWNER_TERM             | owner                                                               |
| 11             | TABLE_TERM             | table                                                               |
| 12             | MAX_OWNER_NAME_LENGTH  | 128                                                                 |
| 13             | TABLE_LENGTH           | 128                                                                 |
| 14             | MAX_QUAL_LENGTH        | 128                                                                 |
| 15             | COLUMN_LENGTH          | 128                                                                 |
| 16             | IDENTIFIER_CASE        | MIXED                                                               |
| 17             | TX_ISOLATION           | 2                                                                   |
| 18             | COLLATION_SEQ          | charset=iso_1 sort_order=nocase_iso charset_num=1 sort_order_num=52 |
| 19             | SAVEPOINT_SUPPORT      | Y                                                                   |
| 20             | MULTI_RESULT_SETS      | Y                                                                   |
| 22             | ACCESSIBLE_TABLES      | Y                                                                   |
| 100            | USERID_LENGTH          | 128                                                                 |
| 101            | QUALIFIER_TERM         | database                                                            |
| 102            | NAMED_TRANSACTIONS     | Y                                                                   |
| 103            | SPROC_AS_LANGUAGE      | Y                                                                   |
| 104            | ACCESSIBLE_SPROC       | Y                                                                   |
| 105            | MAX_INDEX_COLS         | 16                                                                  |
| 106            | RENAME_TABLE           | Y                                                                   |
| 107            | RENAME_COLUMN          | Y                                                                   |
| 108            | DROP_COLUMN            | Y                                                                   |
| 109            | INCREASE_COLUMN_LENGTH | Y                                                                   |
| 110            | DDL_IN_TRANSACTION     | Y                                                                   |
| 111            | DESCENDING_INDEXES     | Y                                                                   |
| 112            | SP_RENAME              | Y                                                                   |
| 113            | REMOTE_SPROC           | Y                                                                   |
| 500            | SYS_SPROC_VERSION      | 15.00.1800                                                          |
+----------------+------------------------+---------------------------------------------------------------------+

Пример 2 – Посочете атрибут

Ако се интересувате само от един атрибут, можете да предадете идентификатора на този атрибут. Правейки това води до връщане само на реда от този атрибут.

EXEC sp_server_info 500;

Може да се направи и така:

sp_server_info 500;
sp_server_info @attribute_id = 500;
EXEC sp_server_info @attribute_id = 500;

Резултат:

+----------------+-------------------+-------------------+
| attribute_id   | attribute_name    | attribute_value   |
|----------------+-------------------+-------------------|
| 500            | SYS_SPROC_VERSION | 15.00.1800        |
+----------------+-------------------+-------------------+

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

Пример 3 – Изпълнете sp_server_info на свързан сървър

В този пример изпълнявам sp_server_info чрез преходна заявка на свързан сървър, наречен Homer.

SELECT * FROM 
OPENQUERY(
  Homer,
  'EXEC sp_server_info 500'
);

Резултат:

+----------------+-------------------+-------------------+
| attribute_id   | attribute_name    | attribute_value   |
|----------------+-------------------+-------------------|
| 500            | SYS_SPROC_VERSION | 14.00.3048        |
+----------------+-------------------+-------------------+

Пример 4 – Посочете кои колони да се показват

Една странична полза от OPENQUERY() е, че можете да намалите колоните, върнати от съхранената процедура.

Пример:

SELECT 
  attribute_name, 
  attribute_value
FROM 
OPENQUERY(
  Homer,
  'EXEC sp_server_info 500'
);

Резултат:

+-------------------+-------------------+
| attribute_name    | attribute_value   |
|-------------------+-------------------|
| SYS_SPROC_VERSION | 14.00.3048        |
+-------------------+-------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP фатална грешка:Извикване на недефинирана функция mssql_connect()

  2. Създайте функция с таблично значение в SQL Server

  3. Грешка на SQL Server 206:Сблъсък на тип операнд

  4. 2 начина да проверите дали достъпът до данни е разрешен в SQL Server (примери за T-SQL)

  5. Отстраняване на неизправности при предоставяне на променлива памет в SQL Server