sql >> Databáze >  >> RDS >> Sqlserver

Jak nastavit výchozí jazyk pro všechna nová přihlášení v SQL Server (T-SQL)

Pokaždé, když vytvoříte nové přihlášení na SQL Server, máte na výběr, zda tomuto přihlášení přiřadíte výchozí jazyk. Pokud tak neučiníte, bude přihlášení používat výchozí jazyk, jak je zadáno v možnosti konfigurace serveru výchozího jazyka.

Tento článek ukazuje, jak nastavit možnost konfigurace výchozího jazykového serveru v SQL Server pomocí T-SQL.

Nejprve zkontrolujte výchozí jazyková nastavení serveru

Než něco změníme, měli bychom zkontrolovat, jaká jsou aktuální nastavení.

 sp_configure uložená procedura umožňuje zobrazit nebo změnit globální nastavení konfigurace pro aktuální server.

Chcete-li vrátit všechny možnosti konfigurace, můžete provést tuto uloženou proceduru bez předávání jakýchkoli argumentů. Takhle:

EXEC sp_configure;

To však vrátí poměrně velkou sadu výsledků.

Vzhledem k tomu, že nás zajímá pouze výchozí nastavení jazyka, můžeme spustit následující kód:

EXEC sp_configure @configname='default language';

A v mém testovacím prostředí to vrátí následující:

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

Hlavní hodnota, která nás zajímá, je config_value a run_value . V tomto případě jsou obě hodnoty 0 , což je ID jazyka pro us_english .

Můžeme je změnit pomocí následujícího kódu:

EXEC sp_configure 'default language', 5;
RECONFIGURE;

Výsledek:

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

Všimněte si, že hodnoty pro config_valuerun_value nejsou automaticky ekvivalentní. Po aktualizaci nastavení konfigurace pomocí sp_configure , musíte aktualizovat run_value buď pomocí RECONFIGURE nebo RECONFIGURE WITH OVERRIDE . Vzhledem k tomu, že jsme to již udělali v tomto příkladu, můžeme začít.

Když tedy znovu zkontrolujeme nastavení, můžeme vidět nové hodnoty:

EXEC sp_configure @configname='default language';

Výsledek:

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

V tomto případě jsme hodnoty změnili na 5 , což je ID jazyka pro Español (španělština).

Můžete se také zeptat na sys.configurations view, chcete-li vrátit hodnoty možností konfigurace serveru, chcete-li.

Jak najít ID jazyka

Pokud neznáte ID jazyka, na který potřebujete změnit jazyk, můžete spustit sp_helplanguage uložené procedury. Můžete jej spustit bez argumentů, v takovém případě budou vráceny všechny jazyky, nebo můžete zadat název jazyka nebo alias, aby byl vrácen pouze tento jazyk.

Zde je příklad:

EXEC sp_helplanguage Spanish;

Zde je výsledek, který dostanu, když to spustím v 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

A vidíme, že ID jazyka pro španělštinu je 5 . To je hodnota, kterou poskytujeme při provádění sp_configure změnit výchozí jazyk na španělštinu.

Když tedy nyní vytvoříme nové přihlášení, jeho výchozím jazykem bude španělština (pokud při vytváření přihlášení výslovně neposkytneme výchozí jazyk).

Vytvořit nové přihlášení – bez zadání výchozího jazyka

Vytvořme tedy nové přihlášení bez zadání výchozího jazyka:

CREATE LOGIN Julio   
    WITH PASSWORD = 't35Tin9345!'

A nyní zkontrolujte výchozí jazyk pro toto přihlášení:

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

Dostaneme následující výsledek:

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

Protože jsme pro toto přihlášení neurčili výchozí jazyk, používá výchozí jazyk, jak je nakonfigurován na úrovni serveru.

Vytvořit nové přihlášení – s výchozím jazykem

Pokud však při vytváření přihlášení určíme výchozí jazyk:

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

A pak dotaz sys.server_principals znovu:

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

Dostaneme následující výsledek:

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

Konfigurace serveru se tedy použije pouze tehdy, když explicitně neurčíte výchozí jazyk pro jednotlivé přihlášení.

Všimněte si, že uživatel může změnit používaný jazyk v rámci své relace. Jen proto, že mají výchozí jazyk, neznamená to, že na něm zůstali. Další informace naleznete v části 3 způsoby, jak získat jazyk aktuální relace na serveru SQL Server (T-SQL) a Jak nastavit aktuální jazyk na serveru SQL (T-SQL).


  1. Jak získat maximální hodnotu celého čísla typu sloupce uloženého jako text typu v tabulce sqlite

  2. Jak používat funkci Coalesce v Oracle

  3. Vyřešte chybu PLS-00323 v Oracle

  4. Jak sečíst hodnoty sloupce v SQL?