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

3 modi per ottenere la lingua della sessione corrente in SQL Server (T-SQL)

Quando viene creato un nuovo account di accesso in SQL Server, viene assegnata una lingua predefinita. Questa lingua viene utilizzata per i messaggi di sistema e i formati di data/ora. Questa lingua verrà utilizzata come lingua predefinita ogni volta che l'accesso si connette a SQL Server (ma può anche essere modificata in una lingua diversa all'interno della sessione).

Se desideri scoprire la lingua assegnata alla sessione corrente, puoi eseguire una delle opzioni in questa pagina.

Opzione 1:la funzione di configurazione @@LANGUAGE

La prima opzione per ottenere la lingua della sessione corrente è utilizzare il @@LANGUAGE funzione scalare. Usalo semplicemente come parte di un SELECT dichiarazione.

In questo modo:

SELECT @@LANGUAGE;

Risultato:

us_english

Opzione 2:il comando DBCC USEROPTIONS

Puoi anche eseguire DBCC USEROPTIONS per restituire la lingua corrente, nonché altre opzioni per la connessione corrente.

In questo modo:

DBCC USEROPTIONS;

Risultato:

+-------------------------+----------------+
| Set Option              | Value          |
|-------------------------+----------------|
| textsize                | -1             |
| language                | us_english     |
| dateformat              | mdy            |
| datefirst               | 7              |
| lock_timeout            | 5000           |
| quoted_identifier       | SET            |
| arithabort              | SET            |
| ansi_null_dflt_on       | SET            |
| ansi_warnings           | SET            |
| ansi_padding            | SET            |
| ansi_nulls              | SET            |
| concat_null_yields_null | SET            |
| isolation level         | read committed |
+-------------------------+----------------+

Opzione 3:la  vista sys.dm_exec_requests

Questa opzione è leggermente diversa dalle due precedenti in quanto questa visualizzazione di sistema restituisce informazioni a livello di singola richiesta (restituisce informazioni su ogni richiesta in esecuzione in SQL Server). Puoi restringere il campo alla richiesta corrente (che sarà il SELECT istruzione con cui si interroga la vista).

Questa visualizzazione restituisce un numero relativamente elevato di colonne, quindi se sei interessato solo alla lingua, puoi selezionare solo quella colonna.

Ecco come restituire la lingua utilizzata nel processo utente corrente:

SELECT r.language
FROM master.sys.dm_exec_requests r
WHERE r.session_id = @@SPID;

Risultato:

+------------+
| language   |
|------------|
| us_english |
+------------+

Puoi sempre cambiare la lingua per la sessione corrente. Per scoprire come, vedere Come impostare la lingua corrente in SQL Server (T-SQL).

Si noti inoltre che alcune funzioni T-SQL integrate accettano argomenti per specificare la lingua/le impostazioni cultura da utilizzare a livello di query specifico. Ad esempio il PARSE() La funzione consente di specificare le impostazioni cultura da usare per la query (o anche parte della query) che specifica come viene formattata la stringa data (ad esempio, vedere Come convertire una stringa in una data/ora in SQL Server utilizzando PARSE( )).

La lingua predefinita

Tieni presente che un utente può anche avere una lingua predefinita diversa dalla lingua corrente. Se usano il SET LANGUAGE dichiarazione per passare a un'altra lingua, la loro lingua predefinita rimarrà quella predefinita, anche se la lingua della sessione corrente è cambiata.

Per trovare la lingua predefinita per un utente/accesso/ruolo, consulta Come trovare la lingua predefinita di un utente in SQL Server (T-SQL).