Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak korzystać z procedury przechowywanej „sp_server_info” w programie SQL Server?

W SQL Server sp_server_info systemowa procedura składowana zwraca listę nazw atrybutów i pasujących wartości dla programu SQL Server, bramy bazy danych lub bazowego źródła danych. Zwraca podzbiór informacji dostarczonych przez SQLGetInfo w ODBC.

Zasadniczo pozwala zobaczyć informacje o SQL Server.

Składnia

Składnia wygląda tak:

sp_server_info [[@attribute_id = ] 'attribute_id']

(Opcjonalnie) @attribute_id argument umożliwia zawężenie wyników tylko do jednego konkretnego atrybutu.

Przykład 1 – Zwróć wszystkie atrybuty

W tym przykładzie wykonuję procedurę składowaną bez przekazywania żadnych argumentów.

EXEC sp_server_info;

Można go również uruchomić w ten sposób:

sp_server_info;

Oto wynik mojej instancji 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                                                          |
+----------------+------------------------+---------------------------------------------------------------------+

Przykład 2 – Określ atrybut

Jeśli interesuje Cię tylko jeden atrybut, możesz przekazać jego identyfikator. Spowoduje to zwrócenie tylko wiersza tego atrybutu.

EXEC sp_server_info 500;

Można to również zrobić w ten sposób:

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

Wynik:

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

W tym przykładzie zwracam atrybut numer 500, który określa wersję aktualnie zaimplementowanych procedur katalogowych.

Przykład 3 – Uruchom sp_server_info na serwerze połączonym

W tym przykładzie wykonuję sp_server_info poprzez zapytanie przekazujące na połączonym serwerze o nazwie Homer.

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

Wynik:

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

Przykład 4 – Określ, które kolumny są wyświetlane

Jedna dodatkowa korzyść z OPENQUERY() jest to, że można zmniejszyć kolumny zwracane przez procedurę składowaną.

Przykład:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zalety wydajności SQL Server 2016 Enterprise Edition

  2. Jaki jest odpowiednik funkcji IsNull() w programie SQL Server w Oracle?

  3. SQL Server v.Next:Wydajność STRING_AGG, część 2

  4. Które zapytanie SQL jest szybsze? Filtruj według kryteriów przyłączenia lub klauzuli Gdzie?

  5. SQL Server:Dołącz niepoprawną wersję 661