In SQL Server de sp_server_info
systeem opgeslagen procedure retourneert een lijst met kenmerknamen en overeenkomende waarden voor SQL Server, de databasegateway of de onderliggende gegevensbron. Het retourneert een subset van de informatie geleverd door SQLGetInfo in ODBC.
Kortom, het stelt u in staat informatie over SQL Server te bekijken.
Syntaxis
De syntaxis gaat als volgt:
sp_server_info [[@attribute_id = ] 'attribute_id']
De (optionele) @attribute_id
argument stelt u in staat de resultaten te beperken tot slechts één specifiek kenmerk.
Voorbeeld 1 – Geef alle attributen terug
In dit voorbeeld voer ik de opgeslagen procedure uit zonder argumenten door te geven.
EXEC sp_server_info;
Het kan ook als volgt worden uitgevoerd:
sp_server_info;
Hier is het resultaat op mijn SQL Server 2019-instantie:
+----------------+------------------------+---------------------------------------------------------------------+ | 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 | +----------------+------------------------+---------------------------------------------------------------------+
Voorbeeld 2 – Specificeer een kenmerk
Als u slechts in één kenmerk geïnteresseerd bent, kunt u de ID van dat kenmerk doorgeven. Als u dit doet, wordt alleen de rij van dat kenmerk geretourneerd.
EXEC sp_server_info 500;
Het kan ook als volgt worden gedaan:
sp_server_info 500; sp_server_info @attribute_id = 500; EXEC sp_server_info @attribute_id = 500;
Resultaat:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 15.00.1800 | +----------------+-------------------+-------------------+
In dit voorbeeld retourneer ik attribuut nummer 500, dat de versie specificeert van de opgeslagen procedures in de catalogus die momenteel geïmplementeerd zijn.
Voorbeeld 3 – Voer sp_server_info uit op een gekoppelde server
In dit voorbeeld voer ik sp_server_info
. uit via een pass-through-query op een gekoppelde server genaamd Homer.
SELECT * FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Resultaat:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 14.00.3048 | +----------------+-------------------+-------------------+
Voorbeeld 4 – Specificeer welke kolommen worden weergegeven
Een bijkomend voordeel van OPENQUERY()
is dat u de kolommen die door de opgeslagen procedure worden geretourneerd, kunt verkleinen.
Voorbeeld:
SELECT attribute_name, attribute_value FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Resultaat:
+-------------------+-------------------+ | attribute_name | attribute_value | |-------------------+-------------------| | SYS_SPROC_VERSION | 14.00.3048 | +-------------------+-------------------+