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

Jak ustawić domyślny język dla wszystkich nowych loginów w SQL Server (T-SQL)

Za każdym razem, gdy tworzysz nowy login w SQL Server, masz możliwość przypisania domyślnego języka do tego loginu. Jeśli tego nie zrobisz, login użyje domyślnego języka określonego w opcji konfiguracji domyślnego serwera językowego.

W tym artykule pokazano, jak ustawić domyślną opcję konfiguracji serwera językowego w SQL Server za pomocą T-SQL.

Najpierw sprawdź domyślne ustawienia językowe serwera

Zanim przejdziemy dalej i cokolwiek zmienimy, powinniśmy sprawdzić, jakie są bieżące ustawienia.

sp_configure procedura składowana umożliwia przeglądanie lub zmianę globalnych ustawień konfiguracyjnych dla bieżącego serwera.

Aby zwrócić wszystkie opcje konfiguracji, można wykonać tę procedurę składowaną bez przekazywania żadnych argumentów. Tak:

EXEC sp_configure;

Jednak zwraca to dość duży zestaw wyników.

Ponieważ interesuje nas tylko domyślny język, możemy uruchomić następujący kod:

EXEC sp_configure @configname='default language';

A w moim środowisku testowym zwraca to:

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

Główne wartości, które nas interesują to config_value i run_value . W tym przypadku obie wartości to 0 , który jest identyfikatorem języka dla us_english .

Możemy je zmienić za pomocą następującego kodu:

EXEC sp_configure 'default language', 5;
RECONFIGURE;

Wynik:

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

Zwróć uwagę, że wartości dla config_valuerun_value nie są automatycznie równoważne. Po zaktualizowaniu ustawienia konfiguracji za pomocą sp_configure , musisz zaktualizować run_value używając opcji RECONFIGURE lub RECONFIGURE WITH OVERRIDE . Biorąc pod uwagę, że już to zrobiliśmy w tym przykładzie, dobrze jest iść.

Kiedy więc ponownie sprawdzimy ustawienia, zobaczymy nowe wartości:

EXEC sp_configure @configname='default language';

Wynik:

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

W tym przypadku zmieniliśmy wartości na 5 , czyli identyfikator języka dla Español (hiszpański).

Możesz również wysłać zapytanie do sys.configurations widok, aby zwrócić wartości opcji konfiguracji serwera, jeśli wolisz.

Jak znaleźć identyfikator języka

Jeśli nie znasz identyfikatora języka, który chcesz zmienić, możesz wykonać sp_helplanguage procedura składowana. Możesz go uruchomić bez argumentów, w którym to przypadku zostaną zwrócone wszystkie języki, lub możesz podać nazwę języka lub alias, aby zwracany był tylko ten język.

Oto przykład:

EXEC sp_helplanguage Spanish;

Oto wynik, który otrzymuję, gdy uruchamiam to w 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

Widzimy, że identyfikator języka hiszpańskiego to 5 . To jest wartość, którą podajemy podczas wykonywania sp_configure aby zmienić domyślny język na hiszpański.

Więc teraz, kiedy tworzymy nowy login, jego domyślnym językiem będzie hiszpański (chyba że wyraźnie określimy domyślny język podczas tworzenia loginu).

Utwórz nowy login – bez określania języka domyślnego

Stwórzmy więc nowy login bez określania domyślnego języka:

CREATE LOGIN Julio   
    WITH PASSWORD = 't35Tin9345!'

A teraz sprawdź domyślny język tego loginu:

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

Otrzymujemy następujący wynik:

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

Ponieważ nie określiliśmy domyślnego języka dla tego logowania, używa on domyślnego języka skonfigurowanego na poziomie serwera.

Utwórz nowy login – z domyślnym językiem

Ale jeśli określimy domyślny język podczas tworzenia loginu:

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

A następnie zapytaj sys.server_principals ponownie:

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

Otrzymujemy następujący wynik:

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

Dlatego konfiguracja serwera jest używana tylko wtedy, gdy nie określisz wyraźnie domyślnego języka dla indywidualnego logowania.

Pamiętaj, że użytkownik może zmienić używany język w swojej sesji. Tylko dlatego, że mają domyślny język, nie oznacza to, że utknęli z nim. Aby uzyskać więcej informacji, zobacz 3 sposoby uzyskania języka bieżącej sesji w SQL Server (T-SQL) i Jak ustawić bieżący język w SQL Server (T-SQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę połączyć się z serwerem SQL z komputera Mac z PHP PDO?

  2. Czy mogę ustawić domyślny schemat dla procedury składowanej?

  3. Zapisywanie zmian po edycji tabeli w SQL Server Management Studio

  4. Wstawianie wierszy do tabeli z tylko jedną kolumną IDENTITY

  5. Dlaczego SQL Server zaokrągla wyniki dzielenia dwóch liczb całkowitych?