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

SQLServerで現在使用されている言語を取得する

    SQLServerで現在使用されている言語を取得する方法はいくつかあります。

    多くの場合、現在のセッションの言語がログインのデフォルト言語になりますが、必ずしもそうとは限りません。ユーザーは、セッション中に現在の言語を変更できます。

    また、SQL Serverの組み込み関数の一部は、その特定のクエリの言語を指定できる引数を受け入れます。

    この記事では、現在使用されている言語を返す方法を説明します。

    @@ LANGUAGE

    @@LANGUAGE 構成関数は、現在使用されている言語の名前を返すために特別に作成されています。

    使用例を次に示します。

    SELECT @@LANGUAGE;

    結果:

    us_english

    これは私のログインのデフォルト言語です。

    セッション中に言語を変更してから、@@LANGUAGEを実行する例を次に示します。 もう一度。

    SET LANGUAGE British;
    SELECT @@LANGUAGE;

    結果:

    British

    DBCCユーザーオプション

    DBCC USEROPTIONS また、他のいくつかの構成オプションとともに、現在使用されている言語を取得することもできます。

    DBCC USEROPTIONS;

    結果:

    +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | British        |
     | dateformat              | dmy            |
     | datefirst               | 1              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+  

    前の例の直後にそのクエリを実行したので、言語として英国が返されます。

    また、言語が暗黙的にdateformatに影響を与えることにも注意してください およびdatefirst 値。 us_englishを使用する場合のこれらの値のデフォルト値 mdyです および7 それぞれ。

    言語をus_Englishに戻すと DBCC USEROPTIONSを実行します ここでも、dateformat およびdatefirst 設定はUS形式に戻ります。

    SET LANGUAGE us_English; 
     ....... DBCC USEROPTIONS;                                                       
     Time: 0.740s
     Changed language setting to us_english.
     +-------------------------+----------------+
     | Set Option              | Value          |
     |-------------------------+----------------|
     | textsize                | -1             |
     | language                | us_english     |
     | dateformat              | mdy            |
     | datefirst               | 7              |
     | lock_timeout            | 5000           |
     | quoted_identifier       | SET            |
     | arithabort              | SET            |
     | ansi_null_dflt_on       | SET            |
     | ansi_warnings           | SET            |
     | ansi_padding            | SET            |
     | ansi_nulls              | SET            |
     | concat_null_yields_null | SET            |
     | isolation level         | read committed |
     +-------------------------+----------------+ 

    ただし、必要に応じて、いつでも日付形式を言語ごとに個別に設定できます。

    sys.dm_exec_requests

    sys.dm_exec_requests ビューを使用すると、特定のユーザープロセスの言語を取得できます。この場合、@@SPIDを使用できます 現在のユーザープロセスを指定します。

    SELECT r.language
    FROM master.sys.dm_exec_requests r
    WHERE r.session_id = @@SPID;

    結果:

    us_english

    1. Postgres:CASTエラーのデフォルト値を定義しますか?

    2. MySQLで予約語をテーブル名または列名として使用したために構文エラーが発生しました

    3. SecurityAdvisorMySQLアラートを修正する方法

    4. PHPをサポートする無料のWebホスティング