Anda mungkin tahu bahwa ketika Anda terhubung ke SQL Server, bahasa untuk sesi itu biasanya ditentukan oleh login Anda. Ketika login dibuat, itu diberikan bahasa default.
Bahasa sesi menentukan waktu tanggal format dan pesan sistem.
Meskipun Anda tentu saja dapat mengubah bahasa default untuk login, Anda juga dapat mengganti bahasa default dalam satu sesi jika perlu. Anda dapat beralih antar bahasa jika diperlukan. Atau Anda bahkan dapat membuka dua koneksi terpisah dan menerapkan bahasa yang berbeda untuk masing-masing koneksi.
Artikel ini menjelaskan cara mengubah bahasa dalam satu sesi.
SETEL BAHASA
SET LANGUAGE
pernyataan memungkinkan Anda untuk mengatur lingkungan bahasa untuk sesi saat ini.
Ini contohnya.
SET LANGUAGE British;
Itu menetapkan bahasa saat ini ke Inggris.
Saya dapat memverifikasi ini dengan kueri berikut.
SELECT @@LANGUAGE;
Hasil:
British
Format Tanggal
Anda harus tahu bahwa mengubah bahasa dalam satu sesi juga mengubah format tanggal.
Berikut kueri lain untuk mengilustrasikan hal ini.
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 | +-------------------------+----------------+
Perhatikan bahwa dateformat
adalah dmy
dan datefirst
adalah 1
. Ini sejalan dengan format tanggal Inggris.
Inilah yang terjadi jika saya mengubah bahasa menjadi us_english
.
SET LANGUAGE us_english; ....... DBCC USEROPTIONS; Time: 0.738s 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 | +-------------------------+----------------+
Perhatikan bahwa format tanggal secara implisit diubah untuk mematuhi format tanggal AS.
Jika Anda merasa ini bermasalah, Anda selalu dapat mengubah format tanggal tanpa mengubah bahasa.
Setel Bahasa di Tingkat Kueri
Beberapa fungsi menerima argumen "budaya" yang memungkinkan Anda menentukan bahasa yang akan digunakan untuk kueri itu saja. Dengan kata lain, Anda dapat mengubah bahasa ad-hoc dalam kueri, tanpa perlu mengubah bahasa sesi Anda saat ini.
Ini contohnya.
SET LANGUAGE us_english;
SELECT
FORMAT(GETDATE(), 'd') AS [My Default],
FORMAT(GETDATE(), 'd', 'en-GB') AS [British],
FORMAT(GETDATE(), 'd', 'de-DE') AS [German];
Hasil:
+--------------+------------+------------+ | My Default | British | German | |--------------+------------+------------| | 3/29/2020 | 29/03/2020 | 29.03.2020 | +--------------+------------+------------+
Dapatkan Daftar Bahasa
Anda dapat menjalankan kueri berikut untuk mendapatkan daftar bahasa yang tersedia di SQL Server.
EXEC sp_helplanguage;
Anda juga dapat mempersempitnya ke bahasa tertentu dengan menambahkannya dengan nama bahasa atau alias.
EXEC sp_helplanguage Italian;