sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo obtener una lista de todos los idiomas en SQL Server (T-SQL)

Aquí hay un par de formas de devolver información en todos los idiomas en SQL Server. Un método usa una vista de compatibilidad del sistema, el otro método ejecuta un procedimiento almacenado del sistema. Ambos métodos devuelven el mismo resultado.

Los syslanguages Vista de compatibilidad del sistema

Los sys.syslanguages La vista de compatibilidad del sistema devuelve información sobre todos los idiomas en SQL Server. Devuelve información como el nombre del idioma, su alias, su formato de fecha, e incluso los nombres de los meses, meses cortos, días, etc.

Al igual que con cualquier vista, puede seleccionar solo las columnas que le interesen. Por lo tanto, si solo desea una lista de nombres o alias de idiomas, puede seleccionar solo esas columnas.

Aquí se explica cómo seleccionar todos los idiomas y sus alias en SQL Server:

SELECT name, alias
FROM sys.syslanguages;

Y aquí está el resultado que obtengo en 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              |
+--------------------+---------------------+

El sp_helplanguage Procedimiento almacenado del sistema

Alternativamente, puede usar el sp_helplanguage procedimiento almacenado del sistema. Este procedimiento almacenado devuelve información sobre todos los idiomas de SQL Server o sobre un idioma en particular, si se especifica uno.

En realidad, devuelve sus datos desde sys.syslanguages vista de compatibilidad mencionada anteriormente.

Para especificar un idioma, simplemente pase el nombre del idioma o el alias al procedimiento almacenado al llamarlo. Si no se especifica ningún idioma, se devuelven todos los idiomas.

Este es un ejemplo de devolución de información sobre un idioma en particular:

EXEC sp_helplanguage Swedish;

Resultado (usando salida vertical):

-[ 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

Y esto es lo que haría si desea que se devuelvan todos los idiomas:

EXEC sp_helplanguage;

En SQL Server 2017, esto devuelve 34 idiomas con su información asociada (una lista bastante larga). Afortunadamente, anteriormente creé un artículo separado que enumera los 34 idiomas y sus formatos de fecha en SQL Server 2017.