In SQL Server ist die sp_server_info
Die gespeicherte Systemprozedur gibt eine Liste mit Attributnamen und übereinstimmenden Werten für SQL Server, das Datenbank-Gateway oder die zugrunde liegende Datenquelle zurück. Es gibt eine Teilmenge der Informationen zurück, die von SQLGetInfo in ODBC bereitgestellt werden.
Grundsätzlich können Sie damit Informationen über SQL Server anzeigen.
Syntax
Die Syntax lautet wie folgt:
sp_server_info [[@attribute_id = ] 'attribute_id']
Die (optionale) @attribute_id
Mit dem Argument können Sie die Ergebnisse auf nur ein bestimmtes Attribut einschränken.
Beispiel 1 – Alle Attribute zurückgeben
In diesem Beispiel führe ich die gespeicherte Prozedur aus, ohne Argumente zu übergeben.
EXEC sp_server_info;
Es kann auch so ausgeführt werden:
sp_server_info;
Hier ist das Ergebnis auf meiner SQL Server 2019-Instanz:
+----------------+------------------------+---------------------------------------------------------------------+ | 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 | +----------------+------------------------+---------------------------------------------------------------------+
Beispiel 2 – Geben Sie ein Attribut an
Wenn Sie nur an einem Attribut interessiert sind, können Sie die ID dieses Attributs übergeben. Dadurch wird nur die Zeile dieses Attributs zurückgegeben.
EXEC sp_server_info 500;
Es kann auch so gemacht werden:
sp_server_info 500; sp_server_info @attribute_id = 500; EXEC sp_server_info @attribute_id = 500;
Ergebnis:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 15.00.1800 | +----------------+-------------------+-------------------+
In diesem Beispiel gebe ich die Attributnummer 500 zurück, die die Version der derzeit implementierten gespeicherten Katalogprozeduren angibt.
Beispiel 3 – Führen Sie sp_server_info auf einem verknüpften Server aus
In diesem Beispiel führe ich sp_server_info
aus über eine Pass-Through-Abfrage auf einem Verbindungsserver namens Homer.
SELECT * FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Ergebnis:
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 14.00.3048 | +----------------+-------------------+-------------------+
Beispiel 4 – Geben Sie an, welche Spalten angezeigt werden
Ein Nebeneffekt von OPENQUERY()
besteht darin, dass Sie die von der gespeicherten Prozedur zurückgegebenen Spalten reduzieren können.
Beispiel:
SELECT attribute_name, attribute_value FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Ergebnis:
+-------------------+-------------------+ | attribute_name | attribute_value | |-------------------+-------------------| | SYS_SPROC_VERSION | 14.00.3048 | +-------------------+-------------------+