Dans SQL Server, le sp_server_info
La procédure stockée système renvoie une liste de noms d'attributs et de valeurs correspondantes pour SQL Server, la passerelle de base de données ou la source de données sous-jacente. Il renvoie un sous-ensemble des informations fournies par SQLGetInfo dans ODBC.
Fondamentalement, il vous permet de voir des informations sur SQL Server.
Syntaxe
La syntaxe ressemble à ceci :
sp_server_info [[@attribute_id = ] 'attribute_id']
Le (facultatif) @attribute_id
L'argument vous permet de limiter les résultats à un seul attribut spécifique.
Exemple 1 - Renvoyer tous les attributs
Dans cet exemple, j'exécute la procédure stockée sans passer d'arguments.
EXEC sp_server_info;
Il peut également être exécuté comme ceci :
sp_server_info;
Voici le résultat sur mon instance 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 | +----------------+------------------------+---------------------------------------------------------------------+
Exemple 2 - Spécifier un attribut
Si vous n'êtes intéressé que par un seul attribut, vous pouvez transmettre l'ID de cet attribut. En faisant cela, seule la ligne de cet attribut est renvoyée.
EXEC sp_server_info 500;
Cela peut aussi être fait comme ceci :
sp_server_info 500; sp_server_info @attribute_id = 500; EXEC sp_server_info @attribute_id = 500;
Résultat :
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 15.00.1800 | +----------------+-------------------+-------------------+
Dans cet exemple, je renvoie l'attribut numéro 500, qui spécifie la version des procédures stockées du catalogue actuellement implémentée.
Exemple 3 – Exécuter sp_server_info sur un serveur lié
Dans cet exemple, j'exécute sp_server_info
via une requête directe sur un serveur lié appelé Homer.
SELECT * FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Résultat :
+----------------+-------------------+-------------------+ | attribute_id | attribute_name | attribute_value | |----------------+-------------------+-------------------| | 500 | SYS_SPROC_VERSION | 14.00.3048 | +----------------+-------------------+-------------------+
Exemple 4 - Spécifier les colonnes à afficher
Un avantage secondaire de OPENQUERY()
est que vous pouvez réduire les colonnes renvoyées par la procédure stockée.
Exemple :
SELECT attribute_name, attribute_value FROM OPENQUERY( Homer, 'EXEC sp_server_info 500' );
Résultat :
+-------------------+-------------------+ | attribute_name | attribute_value | |-------------------+-------------------| | SYS_SPROC_VERSION | 14.00.3048 | +-------------------+-------------------+