Di SQL Server, Anda dapat mengatur bahasa yang akan digunakan untuk sesi saat ini. Pengaturan bahasa saat ini menentukan bahasa yang digunakan pada semua pesan sistem, serta format tanggal/waktu yang akan digunakan.
Artikel ini menunjukkan cara menggunakan T-SQL untuk menyetel lingkungan bahasa saat ini di SQL Server.
Sintaks
Sintaks untuk mengatur bahasa saat ini seperti ini:
SET LANGUAGE { [ N ] 'language' | @language_var }
Dimana [N]'language' | @language_var
adalah nama bahasa yang disimpan di sys.syslanguages
tampilan kompatibilitas sistem. Argumen ini dapat berupa Unicode atau DBCS yang dikonversi ke Unicode.
Untuk menentukan bahasa di Unicode, gunakan N 'bahasa'. Jika ditetapkan sebagai variabel, variabel harus dari nama sistem tipe data (nama sistem tipe data digunakan untuk kolom tabel, variabel, dan parameter prosedur tersimpan yang menyimpan nama objek).
Contoh 1 – Menyetel Bahasa
Berikut ini contoh pengaturan bahasa untuk sesi saat ini ke Inggris:
SET LANGUAGE British;
Hasil:
Changed language setting to British.
Berikut ini contoh pengaturan bahasa untuk sesi saat ini ke bahasa Jerman:
SET LANGUAGE German;
Hasil:
Die Spracheneinstellung wurde in Deutsch geändert.
Jadi kita dapat melihat bahwa output sudah dalam bahasa yang baru ditentukan.
Contoh 2 – Menjalankan Kueri
Mengubah bahasa berdampak pada bagaimana tanggal diformat. Berikut ini contoh untuk menunjukkan apa yang saya maksud.
Pertama, kita ubah bahasanya menjadi British
, lalu jalankan kueri untuk mengonversi string menjadi tanggal tipe data:
SET LANGUAGE British; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Hasil:
+------------+ | Convert | |------------| | 2030-01-09 | +------------+ Changed language setting to British.
Dalam hal ini, tanggal tersebut diterjemahkan sebagai 9 Januari.
Kemudian kita ubah bahasanya menjadi us_English
dan jalankan kueri yang sama:
SET LANGUAGE us_english; SELECT CONVERT(date, '09/01/2030') AS 'Convert';
Hasil:
+------------+ | Convert | |------------| | 2030-09-01 | +------------+ Changed language setting to us_english.
Jadi dalam hal ini, tanggal tersebut diterjemahkan sebagai 1 September, karena pengaturan bahasa yang baru.
Menyetel Bahasa di Tingkat Kueri
Beberapa fungsi T-SQL memungkinkan Anda untuk menentukan bahasa/budaya yang akan digunakan pada tingkat kueri. Misalnya, PARSE()
menerima argumen opsional yang digunakan untuk menentukan bagaimana string yang disediakan diformat. Ini memungkinkan Anda menyetel bahasa/budaya untuk digunakan hanya dalam kueri tersebut (dan bahkan bagian kueri yang berbeda) tanpa perlu mengubah setelan bahasa untuk sesi saat ini.
Berikut ini contoh untuk menunjukkan apa yang saya maksud:
SELECT PARSE('01/06/2018' AS date USING 'en-US') AS 'en-US', PARSE('01/06/2018' AS date USING 'en-GB') AS 'en-GB';
Hasil:
+------------+------------+ | en-US | en-GB | |------------+------------| | 2018-01-06 | 2018-06-01 | +------------+------------+
Jika Anda tidak memberikan argumen ini, bahasa sesi saat ini akan digunakan.
Temukan Bahasa Saat Ini
Anda dapat menjalankan pernyataan berikut untuk mengembalikan bahasa yang sedang digunakan:
SELECT @@LANGUAGE;
Untuk opsi lainnya, lihat 3 Cara Mendapatkan Bahasa Sesi Saat Ini di SQL Server (T-SQL).
Temukan Bahasa yang Tersedia
Anda dapat menjalankan kode berikut untuk mengembalikan daftar bahasa yang tersedia:
EXEC sp_helplanguage;
Ini mengembalikan daftar semua bahasa.
Untuk mempersempitnya ke bahasa tertentu, tambahkan nama bahasa. Seperti ini:
EXEC sp_helplanguage Spanish;