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

3 måder at få sproget for den aktuelle session i SQL Server (T-SQL)

Når et nyt login oprettes i SQL Server, tildeles det et standardsprog. Dette sprog bruges til systemmeddelelser og dato/tidsformater. Dette sprog vil blive brugt som standardsprog, når det pågældende login opretter forbindelse til SQL Server (men det kan også ændres til et andet sprog i sessionen).

Hvis du nogensinde ønsker at finde ud af det sprog, der er tildelt den aktuelle session, kan du køre en af ​​mulighederne på denne side.

Mulighed 1:@@LANGUAGE-konfigurationsfunktionen

Den første mulighed for at få sproget for den aktuelle session er at bruge @@LANGUAGE skalar funktion. Du skal blot bruge det som en del af en SELECT erklæring.

Sådan:

SELECT @@LANGUAGE;

Resultat:

us_english

Mulighed 2:DBCC USEROPTIONS-kommandoen

Du kan også køre DBCC USEROPTIONS for at returnere det aktuelle sprog, samt andre muligheder for den aktuelle forbindelse.

Sådan:

DBCC USEROPTIONS;

Resultat:

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

Mulighed 3:  sys.dm_exec_requests-visningen

Denne indstilling er en smule anderledes end de to foregående muligheder, idet denne systemvisning returnerer oplysninger på det individuelle anmodningsniveau (det returnerer oplysninger om hver anmodning, der udføres i SQL Server). Du kan indsnævre den til den aktuelle anmodning (som vil være SELECT). erklæring, som du forespørger på visningen med).

Denne visning returnerer et relativt stort antal kolonner, så hvis du kun er interesseret i sproget, kan du vælge netop den kolonne.

Sådan returnerer du det sprog, der bruges i den aktuelle brugerproces:

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

Resultat:

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

Du kan altid ændre sproget for den aktuelle session. For at finde ud af hvordan, se Sådan indstilles det aktuelle sprog i SQL Server (T-SQL).

Bemærk også, at nogle indbyggede T-SQL-funktioner accepterer argumenter for at specificere sproget/kulturen, der skal bruges på det specifikke forespørgselsniveau. For eksempel PARSE() funktionen giver dig mulighed for at angive en kultur, der skal bruges til forespørgslen (eller endda en del af forespørgslen), der specificerer, hvordan den givne streng er formateret (se for eksempel Sådan konverteres en streng til en dato/tid i SQL Server ved hjælp af PARSE( )).

Standardsproget

Bemærk, at en bruger også kan have et standardsprog, der er forskelligt fra det aktuelle sprog. Hvis de bruger SET LANGUAGE sætning for at skifte til et andet sprog, forbliver deres standardsprog som deres standardsprog, selvom sproget for den aktuelle session er ændret.

For at finde standardsproget for en bruger/login/rolle, se Sådan finder du en brugers standardsprog i SQL Server (T-SQL).


  1. Kan ikke åbne SQLite-database fra SQLIte Helper Oncreate, når OnCreate udløses ved at åbne databasen for første gang

  2. Fejl:Klienten understøtter ikke godkendelsesprotokol anmodet af serveren; overveje at opgradere MySQL-klienten

  3. Sådan tilføjes identitetskolonne til tabel med TSQL og GUI i SQL Server - SQL Server / T-SQL vejledning del 40

  4. Få tabelnavne ved hjælp af SELECT-sætning i MySQL