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