Her er et par måder at returnere oplysninger om alle sprog i SQL Server. Den ene metode bruger en systemkompatibilitetsvisning, den anden metode udfører en systemlagret procedure. Begge metoder giver det samme resultat.
syslanguages
Systemkompatibilitetsvisning
sys.syslanguages
systemkompatibilitetsvisning returnerer oplysninger om alle sprog i SQL Server. Det returnerer information såsom sprognavnet, dets alias, dets datoformat og endda navnene på månederne, korte måneder, dage osv.
Som med enhver visning kan du kun vælge de kolonner, du er interesseret i. Så hvis du bare vil have en liste over sprognavne eller aliasser, kan du vælge netop disse kolonner.
Sådan vælger du alle sprog og deres aliaser i SQL Server:
SELECT name, alias FROM sys.syslanguages;
Og her er resultatet, jeg får i SQL Server 2017:
+--------------------+---------------------+ | name | alias | |--------------------+---------------------| | us_english | English | | Deutsch | German | | Français | French | | 日本語 | Japanese | | Dansk | Danish | | Español | Spanish | | Italiano | Italian | | Nederlands | Dutch | | Norsk | Norwegian | | Português | Portuguese | | Suomi | Finnish | | Svenska | Swedish | | čeština | Czech | | magyar | Hungarian | | polski | Polish | | română | Romanian | | hrvatski | Croatian | | slovenčina | Slovak | | slovenski | Slovenian | | ελληνικά | Greek | | български | Bulgarian | | русский | Russian | | Türkçe | Turkish | | British | British English | | eesti | Estonian | | latviešu | Latvian | | lietuvių | Lithuanian | | Português (Brasil) | Brazilian | | 繁體中文 | Traditional Chinese | | 한국어 | Korean | | 简体中文 | Simplified Chinese | | Arabic | Arabic | | ไทย | Thai | | norsk (bokmål) | Bokmål | +--------------------+---------------------+
sp_helplanguage
Systemlagret procedure
Alternativt kan du bruge sp_helplanguage
system lagret procedure. Denne lagrede procedure returnerer information om alle sprog i SQL Server, eller om et bestemt sprog, hvis et er angivet.
Det returnerer faktisk sine data fra sys.syslanguages
kompatibilitetsvisning nævnt ovenfor.
For at angive et sprog skal du blot overføre sprognavnet eller aliaset til den lagrede procedure, når du kalder det. Hvis der ikke er angivet et sprog, returneres alle sprog.
Her er et eksempel på returnering af oplysninger om et bestemt sprog:
EXEC sp_helplanguage Swedish;
Resultat (ved hjælp af lodret output):
-[ RECORD 1 ]------------------------- langid | 11 dateformat | ymd datefirst | 1 upgrade | 0 name | Svenska alias | Swedish months | januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december shortmonths | jan,feb,mar,apr,maj,jun,jul,aug,sep,okt,nov,dec days | måndag,tisdag,onsdag,torsdag,fredag,lördag,söndag lcid | 1053 msglangid | 1053
Og her er, hvad du ville gøre, hvis du vil have alle sprog returneret:
EXEC sp_helplanguage;
I SQL Server 2017 returnerer dette 34 sprog med tilhørende information (en ret lang liste). Heldigvis har jeg tidligere oprettet en separat artikel, der viser alle 34 sprog og deres datoformater i SQL Server 2017.