Setiap kali Anda membuat login baru di SQL Server, Anda memiliki pilihan untuk menetapkan bahasa default untuk login tersebut. Jika Anda tidak melakukannya, login akan menggunakan bahasa default seperti yang ditentukan dalam opsi konfigurasi server bahasa default.
Artikel ini menunjukkan cara menyetel opsi konfigurasi server bahasa default di SQL Server, menggunakan T-SQL.
Pertama, Periksa Pengaturan Bahasa Default Server
Sebelum kita melanjutkan dan mengubah apa pun, kita harus memeriksa untuk melihat apa pengaturan saat ini.
sp_configure
prosedur tersimpan memungkinkan Anda untuk melihat atau mengubah pengaturan konfigurasi global untuk server saat ini.
Untuk mengembalikan semua opsi konfigurasi, Anda dapat menjalankan prosedur tersimpan ini tanpa memberikan argumen apa pun. Seperti ini:
EXEC sp_configure;
Namun, itu mengembalikan kumpulan hasil yang cukup besar.
Mengingat kami hanya tertarik pada pengaturan bahasa default, kami dapat menjalankan kode berikut:
EXEC sp_configure @configname='default language';
Dan di lingkungan pengujian saya, itu mengembalikan yang berikut:
+------------------+-----------+-----------+----------------+-------------+ | name | minimum | maximum | config_value | run_value | |------------------+-----------+-----------+----------------+-------------| | default language | 0 | 9999 | 0 | 0 | +------------------+-----------+-----------+----------------+-------------+
Nilai utama yang kami minati adalah config_value
dan run_value
. Dalam hal ini, kedua nilai adalah 0
, yang merupakan ID bahasa untuk us_english
.
Kita dapat mengubahnya menggunakan kode berikut:
EXEC sp_configure 'default language', 5; RECONFIGURE;
Hasil:
Configuration option 'default language' changed from 0 to 5. Run the RECONFIGURE statement to install.
Perhatikan bahwa nilai untuk config_value
dan run_value
tidak secara otomatis setara. Setelah memperbarui setelan konfigurasi dengan menggunakan sp_configure
, Anda harus memperbarui run_value
dengan menggunakan RECONFIGURE
atau RECONFIGURE WITH OVERRIDE
. Mengingat kami sudah melakukannya dalam contoh ini, kami siap melakukannya.
Jadi ketika kami memeriksa pengaturannya lagi, kami dapat melihat nilai baru:
EXEC sp_configure @configname='default language';
Hasil:
+------------------+-----------+-----------+----------------+-------------+ | name | minimum | maximum | config_value | run_value | |------------------+-----------+-----------+----------------+-------------| | default language | 0 | 9999 | 5 | 5 | +------------------+-----------+-----------+----------------+-------------+
Dalam hal ini, kami mengubah nilainya menjadi 5
, yang merupakan ID bahasa untuk Español
(Spanyol).
Anda juga dapat membuat kueri sys.configurations
view untuk mengembalikan nilai opsi konfigurasi server jika Anda mau.
Cara Menemukan ID Bahasa
Jika Anda tidak mengetahui ID bahasa dari bahasa yang ingin Anda ubah, Anda dapat menjalankan sp_helplanguage
prosedur tersimpan. Anda dapat menjalankannya tanpa argumen, dalam hal ini semua bahasa akan dikembalikan, atau Anda dapat memberikan nama bahasa atau alias sehingga hanya bahasa tersebut yang dikembalikan.
Ini contohnya:
EXEC sp_helplanguage Spanish;
Inilah hasil yang saya dapatkan ketika saya menjalankannya di 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
Dan kita dapat melihat bahwa ID bahasa untuk bahasa Spanyol adalah 5
. Jadi itulah nilai yang kami berikan saat menjalankan sp_configure
untuk mengubah bahasa default ke bahasa Spanyol.
Jadi sekarang saat kita membuat login baru, bahasa defaultnya adalah bahasa Spanyol (kecuali jika kita secara eksplisit memberikan bahasa default saat membuat login).
Buat Login Baru – Tanpa Menentukan Bahasa Default
Jadi mari kita buat login baru tanpa menentukan bahasa default:
CREATE LOGIN Julio WITH PASSWORD = 't35Tin9345!'
Dan sekarang periksa bahasa default untuk login itu:
SELECT default_language_name FROM master.sys.server_principals WHERE name = 'Julio';
Kami mendapatkan hasil berikut:
+-------------------------+ | default_language_name | |-------------------------| | Español | +-------------------------+
Karena kami tidak menentukan bahasa default untuk login ini, bahasa default akan digunakan seperti yang dikonfigurasi di tingkat server.
Buat Login Baru – Dengan Bahasa Default
Tetapi jika kita menentukan bahasa default saat kita membuat login:
CREATE LOGIN Einstein WITH PASSWORD = 't35Tin9345!', DEFAULT_LANGUAGE = German;
Dan kemudian kueri sys.server_principals
lagi:
SELECT default_language_name FROM master.sys.server_principals WHERE name = 'Einstein';
Kami mendapatkan hasil berikut:
+-------------------------+ | default_language_name | |-------------------------| | German | +-------------------------+
Jadi konfigurasi server hanya digunakan ketika Anda tidak secara eksplisit menentukan bahasa default untuk login individual.
Perhatikan bahwa pengguna dapat mengubah bahasa yang digunakan dalam sesi mereka. Hanya karena mereka memiliki bahasa default, itu tidak berarti bahwa mereka terjebak dengan itu. Untuk informasi selengkapnya, lihat 3 Cara Mendapatkan Bahasa Sesi Saat Ini di SQL Server (T-SQL) dan Cara Mengatur Bahasa Saat Ini di SQL Server (T-SQL).