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