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

Få det sprog, der i øjeblikket bruges i SQL Server

Der er flere måder at få det sprog, der i øjeblikket bruges i SQL Server.

Sproget for den aktuelle session vil ofte være standardsproget for login, men det er ikke nødvendigvis altid tilfældet. En bruger kan ændre det aktuelle sprog under sessionen.

Nogle af SQL Servers indbyggede funktioner accepterer også et argument, der giver dig mulighed for at angive et sprog for den specifikke forespørgsel.

Denne artikel viser dig, hvordan du returnerer det sprog, der bruges i øjeblikket.

@@LANGUAGE

@@LANGUAGE konfigurationsfunktionen er lavet specifikt til at returnere navnet på det sprog, der bruges i øjeblikket.

Her er et eksempel på brug.

SELECT @@LANGUAGE;

Resultat:

us_english

Dette er standardsproget for mit login.

Her er et eksempel på at ændre sproget under min session og derefter køre @@LANGUAGE igen.

SET LANGUAGE British;
SELECT @@LANGUAGE;

Resultat:

British

DBCC-BRUGERINDSTILLINGER

DBCC USEROPTIONS giver dig også mulighed for at få det sprog, der bruges i øjeblikket, sammen med et par andre konfigurationsmuligheder.

DBCC USEROPTIONS;

Resultat:

+-------------------------+----------------+
 | Set Option              | Value          |
 |-------------------------+----------------|
 | textsize                | -1             |
 | language                | British        |
 | dateformat              | dmy            |
 | datefirst               | 1              |
 | 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 |
 +-------------------------+----------------+  

Jeg kørte den forespørgsel umiddelbart efter det forrige eksempel, og så returnerer den stadig britisk som sprog.

Bemærk også, at sproget implicit påvirker dateformat og datefirst værdier. Standardværdierne for disse værdier, når du bruger us_english er mdy og 7 hhv.

Hvis jeg ændrer sproget tilbage til us_English og kør DBCC USEROPTIONS igen vil du se, at dateformat og datefirst indstillinger vender tilbage til amerikansk format.

SET LANGUAGE us_English; 
 ....... DBCC USEROPTIONS;                                                       
 Time: 0.740s
 Changed language setting to us_english.
 +-------------------------+----------------+
 | 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 |
 +-------------------------+----------------+ 

Du kan dog altid indstille datoformatet separat til sproget, hvis du har brug for det.

sys.dm_exec_requests

sys.dm_exec_requests view giver dig mulighed for at hente sproget til en specifik brugerproces. I dette tilfælde kan vi bruge @@SPID for at angive den aktuelle brugerproces.

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

Resultat:

us_english

  1. Sådan opretter du en navigationsformular i Microsoft Access

  2. Find ud af, om en tabel er opdelt i SQL Server (T-SQL)

  3. Hvordan får man optælling af rækker i MySQL-tabel ved hjælp af PHP?

  4. To fremmednøgler i stedet for primære