Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verwenden Sie die gespeicherte Prozedur „sp_server_info“ in SQL Server

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