Pro každé připojení (session) můžeme nastavit jejích výchozí jazyk a toto nastavení následně určuje některé charakteristiky daného připojení, např. v jakém jazyce se budou zobrazovat systémové zprávy nebo různé formáty data, dny v týdnu a podobně. Než se pustíme do změny jazyka připojení, podívejme se, jak můžeme zjistit aktuální nastavení:
SELECT @@LANGID SELECT @@LANGUAGE GO EXEC sp_helplanguage @@LANGUAGE GO SELECT * FROM sys.syslanguages WHERE langid = @@LANGID GO
Nastavení aktuálního jazyka připojení tedy můžeme zjistit pomocí systémových proměnných @@LANGID nebo @@LANGUAGE, kdy první vrací langid ze systémového pohledu sys.syslanguages a druhá přímo název daného jazyka z téhož systémového pohledu.
Pro zjištění detailů o daném jazyku pak slouží buď systémová procedura sp_helplanguage nebo se můžeme dotázat přímo do výše uvedeného systémového pohledu.
Pokud chceme změnit jazyk daného připojení, např. zobrazovat uživatelům z uložených procedur chybové zprávy v lokálním jazyce, můžeme nastavení upravit pomocí SET LANGUAGE klauzule. A rovnou se můžeme podívat, jak se bude chovat např. funkce DATENAME():
SET LANGUAGE 'English' GO SELECT @@LANGUAGE CurrentLanguage GO SELECT DATENAME(MONTH, GETDATE()) LocalMonthName GO SET LANGUAGE 'Czech' GO SELECT @@LANGUAGE CurrentLanguage GO SELECT DATENAME(MONTH, GETDATE()) LocalMonthName GO
Podle nastavení jazyka se nyní názvy měsíců zobrazují buď v angličtině nebo v češtině.
Obdobným způsobem má toto nastavení vliv na jazyk, ve kterém se budou zobrazovat systémové zprávy:
SET LANGUAGE 'English' GO SELECT @@LANGUAGE CurrentLanguage GO SELECT 1/0 GO SET LANGUAGE 'Czech' GO SELECT @@LANGUAGE CurrentLanguage GO SELECT 1/0 GO