SQL Server

Jazykové nastavení připojení

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

Leave a Reply

Your email address will not be published.