sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man använder den lagrade proceduren 'sp_server_info' i SQL Server

I SQL Server är sp_server_info Systemlagrad procedur returnerar en lista med attributnamn och matchande värden för SQL Server, databasgatewayen eller den underliggande datakällan. Den returnerar en delmängd av informationen som tillhandahålls av SQLGetInfo i ODBC.

I grund och botten låter det dig se information om SQL Server.

Syntax

Syntaxen ser ut så här:

sp_server_info [[@attribute_id = ] 'attribute_id']

(valfritt) @attribute_id argument gör att du kan begränsa resultaten till bara ett specifikt attribut.

Exempel 1 – Returnera alla attribut

I det här exemplet kör jag den lagrade proceduren utan att skicka några argument.

EXEC sp_server_info;

Det kan också köras så här:

sp_server_info;

Här är resultatet på min SQL Server 2019-instans:

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

Exempel 2 – Ange ett attribut

Om du bara är intresserad av ett attribut kan du skicka det attributets ID. Att göra detta resulterar i att bara raden med det attributet returneras.

EXEC sp_server_info 500;

Det kan också göras så här:

sp_server_info 500;
sp_server_info @attribute_id = 500;
EXEC sp_server_info @attribute_id = 500;

Resultat:

+----------------+-------------------+-------------------+
| attribute_id   | attribute_name    | attribute_value   |
|----------------+-------------------+-------------------|
| 500            | SYS_SPROC_VERSION | 15.00.1800        |
+----------------+-------------------+-------------------+

I det här exemplet returnerar jag attribut nummer 500, som anger versionen av de kataloglagrade procedurerna som för närvarande implementeras.

Exempel 3 – Kör sp_server_info på en länkad server

I det här exemplet kör jag sp_server_info via en pass-through-fråga på en länkad server som heter Homer.

SELECT * FROM 
OPENQUERY(
  Homer,
  'EXEC sp_server_info 500'
);

Resultat:

+----------------+-------------------+-------------------+
| attribute_id   | attribute_name    | attribute_value   |
|----------------+-------------------+-------------------|
| 500            | SYS_SPROC_VERSION | 14.00.3048        |
+----------------+-------------------+-------------------+

Exempel 4 – Ange vilka kolumner som ska visas

En sidofördel med OPENQUERY() är att du kan minska kolumnerna som returneras av den lagrade proceduren.

Exempel:

SELECT 
  attribute_name, 
  attribute_value
FROM 
OPENQUERY(
  Homer,
  'EXEC sp_server_info 500'
);

Resultat:

+-------------------+-------------------+
| attribute_name    | attribute_value   |
|-------------------+-------------------|
| SYS_SPROC_VERSION | 14.00.3048        |
+-------------------+-------------------+

  1. Automatisera IRI Data Integration Jobs med Oracle Job Scheduler

  2. "lösenordsautentisering misslyckades för användare postgres"

  3. Hur uppdaterar man alla kolumner med INSERT ... ON CONFLICT ...?

  4. SQL Server, den vilseledande XLOCK &optimeringar