sql >> Database >  >> RDS >> Sqlserver

Hoe de 'sp_server_info' opgeslagen procedure in SQL Server te gebruiken?

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

  1. DML-statements testen voor In-Memory OLTP

  2. Hoe leidende witruimte in MySQL te verwijderen?

  3. Gegevens invoegen in SQL Server

  4. Gegevens worden ingevuld vanaf de datum van een bepaalde tabel in plaats van alle tabellen in sqlite