sql >> データベース >  >> RDS >> Sqlserver

SQLServerで「sp_server_info」ストアドプロシージャを使用する方法

    SQL Serverでは、sp_server_info システムストアドプロシージャは、SQL Server、データベースゲートウェイ、または基になるデータソースの属性名と一致する値のリストを返します。 ODBCのSQLGetInfoによって提供される情報のサブセットを返します。

    基本的に、SQLServerに関する情報を表示できます。

    構文

    構文は次のようになります:

    sp_server_info [[@attribute_id = ] 'attribute_id']
    

    (オプション)@attribute_id 引数を使用すると、結果を1つの特定の属性のみに絞り込むことができます。

    例1-すべての属性を返す

    この例では、引数を渡さずにストアドプロシージャを実行します。

    EXEC sp_server_info;
    

    次のように実行することもできます:

    sp_server_info;
    

    SQLServer2019インスタンスの結果は次のとおりです。

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

    例2–属性を指定する

    1つの属性のみに関心がある場合は、その属性のIDを渡すことができます。これを行うと、その属性の行だけが返されます。

    EXEC sp_server_info 500;
    

    次のようにすることもできます:

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

    結果:

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

    この例では、現在実装されているカタログストアドプロシージャのバージョンを指定する属性番号500を返します。

    例3–リンクサーバーでsp_server_infoを実行する

    この例では、sp_server_infoを実行します Homerと呼ばれるリンクサーバーでのパススルークエリを介して。

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

    結果:

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

    例4–表示する列を指定する

    OPENQUERY()の1つの副次的な利点 ストアドプロシージャによって返される列を減らすことができるということです。

    例:

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

    結果:

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

    1. SQLServerExpressとExpresslocaldb

    2. OracleSQL句の評価順序

    3. postgresqlhibernateでuserという名前のテーブルを使用できません

    4. ユーザーIDをPostgreSQLトリガーに渡す