Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come impostare la lingua corrente in SQL Server (T-SQL)

In SQL Server è possibile impostare la lingua da utilizzare per la sessione corrente. L'impostazione della lingua corrente determina la lingua utilizzata su tutti i messaggi di sistema, nonché i formati di data/ora da utilizzare.

Questo articolo illustra come utilizzare T-SQL per impostare l'ambiente del linguaggio corrente in SQL Server.

Sintassi

La sintassi per impostare la lingua corrente è la seguente:

SET LANGUAGE { [ N ] 'language' | @language_var }

Dove [N]'language' | @language_var è il nome della lingua memorizzata in sys.syslanguages visualizzazione della compatibilità del sistema. Questo argomento può essere Unicode o DBCS convertito in Unicode.

Per specificare una lingua in Unicode, usa N 'linguaggio'. Se specificata come variabile, la variabile deve essere di sysname tipo di dati (il nome di sistema il tipo di dati viene utilizzato per le colonne della tabella, le variabili e i parametri della procedura memorizzata che memorizzano i nomi degli oggetti).

Esempio 1 – Impostazione della lingua

Ecco un esempio di impostazione della lingua per la sessione corrente su inglese:

SET LANGUAGE British;

Risultato:

Changed language setting to British.

Ecco un esempio di impostazione della lingua per la sessione corrente sul tedesco:

SET LANGUAGE German;

Risultato:

Die Spracheneinstellung wurde in Deutsch geändert.

Quindi possiamo vedere che l'output è già nella lingua appena specificata.

Esempio 2 – Esecuzione di una query

La modifica della lingua influisce sulla formattazione delle date. Ecco un esempio per mostrare cosa intendo.

Innanzitutto, cambiamo la lingua in British , quindi esegui una query per convertire una stringa in una data tipo di dati:

SET LANGUAGE British;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Risultato:

+------------+
| Convert    |
|------------|
| 2030-01-09 |
+------------+
Changed language setting to British.

In questo caso, la data viene tradotta come il 9 gennaio.

Quindi cambiamo la lingua in us_English ed esegui la stessa query:

SET LANGUAGE us_english;
SELECT CONVERT(date, '09/01/2030') AS 'Convert';

Risultato:

+------------+
| Convert    |
|------------|
| 2030-09-01 |
+------------+
Changed language setting to us_english.

Quindi, in questo caso, la data è stata tradotta come il 1 settembre, a causa delle nuove impostazioni della lingua.

Impostazione della lingua a livello di query

Alcune funzioni T-SQL consentono di specificare una lingua/cultura da utilizzare a livello di query. Ad esempio, PARSE() accetta un argomento facoltativo utilizzato per determinare la modalità di formattazione della stringa fornita. Ciò ti consente di impostare la lingua/cultura da utilizzare solo all'interno di quella query (e anche in diverse parti della query) senza la necessità di modificare le impostazioni della lingua per la sessione corrente.

Ecco un esempio per dimostrare cosa intendo:

SELECT 
    PARSE('01/06/2018' AS date USING 'en-US') AS 'en-US',
    PARSE('01/06/2018' AS date USING 'en-GB') AS 'en-GB';

Risultato:

+------------+------------+
| en-US      | en-GB      |
|------------+------------|
| 2018-01-06 | 2018-06-01 |
+------------+------------+

Se non fornisci questo argomento, viene utilizzata la lingua della sessione corrente.

Trova la lingua corrente

Puoi eseguire la seguente istruzione per restituire la lingua attualmente utilizzata:

SELECT @@LANGUAGE;

Per ulteriori opzioni, vedere 3 modi per ottenere la lingua della sessione corrente in SQL Server (T-SQL).

Trova le lingue disponibili

Puoi eseguire il codice seguente per restituire un elenco di lingue disponibili:

EXEC sp_helplanguage;

Questo restituisce un elenco di tutte le lingue.

Per restringere il campo a una lingua particolare, aggiungi il nome della lingua. In questo modo:

EXEC sp_helplanguage Spanish;