Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser la procédure stockée 'sp_server_info' dans SQL Server

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