Ada beberapa cara untuk mendapatkan bahasa yang saat ini digunakan di SQL Server.
Bahasa sesi saat ini sering kali menjadi bahasa default untuk login, tetapi hal ini tidak selalu demikian. Seorang pengguna dapat mengubah bahasa saat ini selama sesi.
Selain itu, beberapa fungsi bawaan SQL Server menerima argumen yang memungkinkan Anda menentukan bahasa untuk kueri spesifik tersebut.
Artikel ini menunjukkan cara mengembalikan bahasa yang sedang digunakan.
@@LANGUAGE
@@LANGUAGE
fungsi konfigurasi dibuat khusus untuk mengembalikan nama bahasa yang sedang digunakan.
Berikut ini contoh penggunaannya.
SELECT @@LANGUAGE;
Hasil:
us_english
Ini adalah bahasa default untuk login saya.
Berikut ini contoh mengubah bahasa selama sesi saya, lalu jalankan @@LANGUAGE
lagi.
SET LANGUAGE British;
SELECT @@LANGUAGE;
Hasil:
British
OPSI PENGGUNAAN DBCC
DBCC USEROPTIONS
juga memungkinkan Anda mendapatkan bahasa yang sedang digunakan, bersama dengan beberapa opsi konfigurasi lainnya.
DBCC USEROPTIONS;
Hasil:
+-------------------------+----------------+ | 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 | +-------------------------+----------------+
Saya menjalankan kueri itu segera setelah contoh sebelumnya dan masih mengembalikan bahasa Inggris sebagai bahasa.
Perhatikan juga bahwa bahasa secara implisit memengaruhi dateformat
dan datefirst
nilai-nilai. Nilai default untuk nilai tersebut saat menggunakan us_english
adalah mdy
dan 7
masing-masing.
Jika saya mengubah bahasa kembali ke us_English
dan jalankan DBCC USEROPTIONS
lagi, Anda akan melihat bahwa dateformat
dan datefirst
pengaturan kembali ke format AS.
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 | +-------------------------+----------------+
Namun, Anda selalu dapat menyetel format tanggal secara terpisah ke bahasa jika perlu.
sys.dm_exec_requests
sys.dm_exec_requests
view memungkinkan Anda untuk mengambil bahasa untuk proses pengguna tertentu. Dalam hal ini kita dapat menggunakan @@SPID
untuk menentukan proses pengguna saat ini.
SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;
Hasil:
us_english