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

SQL Server(T-SQL)ですべての新規ログインのデフォルト言語を設定する方法

    SQL Serverで新しいログインを作成するたびに、そのログインにデフォルトの言語を割り当てることができます。これを行わない場合、ログインはデフォルト言語サーバー構成オプションで指定されたデフォルト言語を使用します。

    この記事では、T-SQLを使用して、SQLServerでデフォルトの言語サーバー構成オプションを設定する方法について説明します。

    まず、サーバーのデフォルトの言語設定を確認します

    先に進んで何かを変更する前に、現在の設定が何であるかを確認する必要があります。

    sp_configure ストアドプロシージャを使用すると、現在のサーバーのグローバル構成設定を表示または変更できます。

    すべての構成オプションを返すには、引数を渡さずにこのストアドプロシージャを実行できます。このように:

    EXEC sp_configure;
    

    ただし、それは非常に大きな結果セットを返します。

    デフォルトの言語設定のみに関心があるため、次のコードを実行できます。

    EXEC sp_configure @configname='default language';

    そして、私のテスト環境では、次のようになります。

    +------------------+-----------+-----------+----------------+-------------+
    | name             | minimum   | maximum   | config_value   | run_value   |
    |------------------+-----------+-----------+----------------+-------------|
    | default language | 0         | 9999      | 0              | 0           |
    +------------------+-----------+-----------+----------------+-------------+

    関心のある主な値はconfig_valueです およびrun_value 。この場合、両方の値は0です。 、us_englishの言語IDです 。

    次のコードを使用して変更できます:

    EXEC sp_configure 'default language', 5;
    RECONFIGURE;

    結果:

    Configuration option 'default language' changed from 0 to 5. Run the RECONFIGURE statement to install. 
    

    config_valueの値に注意してください およびrun_value 自動的に同等ではありません。 sp_configureを使用して構成設定を更新した後 、run_valueを更新する必要があります RECONFIGUREのいずれかを使用する またはRECONFIGURE WITH OVERRIDE 。この例ではすでにそれを行っているので、準備はできています。

    したがって、設定をもう一度確認すると、新しい値が表示されます。

    EXEC sp_configure @configname='default language';

    結果:

    +------------------+-----------+-----------+----------------+-------------+
    | name             | minimum   | maximum   | config_value   | run_value   |
    |------------------+-----------+-----------+----------------+-------------|
    | default language | 0         | 9999      | 5              | 5           |
    +------------------+-----------+-----------+----------------+-------------+

    この場合、値を5に変更しました 、Españolの言語IDです (スペイン語)。

    sys.configurationsにクエリを実行することもできます 必要に応じて、サーバー構成オプションの値を返すように表示します。

    言語IDを見つける方法

    変更する必要のある言語の言語IDがわからない場合は、sp_helplanguageを実行できます。 ストアドプロシージャ。引数なしで実行できます。その場合、すべての言語が返されます。または、言語名またはエイリアスを指定して、その言語のみが返されるようにすることもできます。

    次に例を示します:

    EXEC sp_helplanguage Spanish;

    これをmssql-cliで実行したときに得られる結果は次のとおりです。

    -[ RECORD 1 ]-------------------------
    langid      | 5
    dateformat  | dmy
    datefirst   | 1
    upgrade     | 0
    name        | Español
    alias       | Spanish
    months      | Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octub
    shortmonths | Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic
    days        | Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo
    lcid        | 3082
    msglangid   | 3082
    

    また、スペイン語の言語IDは5であることがわかります。 。これが、sp_configureを実行するときに提供する値です。 デフォルトの言語をスペイン語に変更します。

    したがって、新しいログインを作成するとき、そのデフォルト言語はスペイン語になります(ログインを作成するときにデフォルト言語を明示的に指定しない限り)。

    新しいログインを作成する–デフォルトの言語を指定せずに

    それでは、デフォルトの言語を指定せずに新しいログインを作成しましょう:

    CREATE LOGIN Julio   
        WITH PASSWORD = 't35Tin9345!'

    次に、そのログインのデフォルト言語を確認します:

    SELECT default_language_name 
    FROM master.sys.server_principals
    WHERE name = 'Julio';

    次の結果が得られます:

    +-------------------------+
    | default_language_name   |
    |-------------------------|
    | Español                 |
    +-------------------------+

    このログインにはデフォルトの言語を指定しなかったため、サーバーレベルで構成されたデフォルトの言語を使用します。

    新しいログインを作成する–デフォルトの言語で

    ただし、ログインを作成するときにデフォルトの言語を指定すると、次のようになります。

    CREATE LOGIN Einstein   
        WITH PASSWORD = 't35Tin9345!',
        DEFAULT_LANGUAGE = German;

    次に、sys.server_principalsにクエリを実行します もう一度:

    SELECT default_language_name 
    FROM master.sys.server_principals
    WHERE name = 'Einstein';
    

    次の結果が得られます:

    +-------------------------+
    | default_language_name   |
    |-------------------------|
    | German                  |
    +-------------------------+

    したがって、サーバー構成は、個々のログインのデフォルト言語を明示的に指定しない場合にのみ使用されます。

    ユーザーは、セッション内で使用されている言語を変更できることに注意してください。彼らがデフォルトの言語を持っているからといって、それは彼らがそれに固執しているという意味ではありません。詳細については、「SQL Server(T-SQL)で現在のセッションの言語を取得する3つの方法」および「SQLServer(T-SQL)で現在の言語を設定する方法」を参照してください。


    1. SQL Server AlwaysOn(可用性グループ)アーキテクチャとステップバイステップのインストール-2

    2. MySQL-SELECTクエリに基づくUPDATEクエリ

    3. MySQLとMariaDBデータベースのバックアップリソース

    4. MySQLDB SScursorを効率的に使用するにはどうすればよいですか?