В SQL Server можете да разберете езика по подразбиране за даден потребител, като потърсите sys.server_principals
изглед на системния каталог.
Този изглед съдържа ред за всеки принципал на ниво сървър. Той съдържа информация като име на принципала, тип, дата на създаване/промяна, база данни по подразбиране, език по подразбиране и т.н. Принципалът е обект, който може да изисква ресурси на SQL Server.
Принципал може да бъде някое от следните:
Принципи на ниво Windows
- Вход в домейн на Windows
- Локално влизане в Windows
Принциал на ниво SQL сървър
- Вход в SQL сървър
Принципи на ниво база данни
- Потребител на базата данни
- Роля в базата данни
- Роля на приложение
Пример за връщане на езика по подразбиране на принципал
За да получите езика по подразбиране за даден принципал, можете да заявите sys.server_principals
прегледайте и използвайте WHERE
клауза за основното име, което ви интересува.
Като това:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Резултат:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Този пример получава езика по подразбиране за sa
принципал. Главното име е уникално в рамките на сървъра. Този пример също връща базата данни по подразбиране, както и основния тип. В този случай принципалът е вход за SQL Server.
Ето още един пример за използване на различен потребител:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Резултат:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
В този случай входът има различна база данни и език по подразбиране.
Разбира се, винаги можете да използвате звездичка, за да върнете всички колони, ако е необходимо.
Имайте предвид, че всяко влизане може да вижда собственото си име за вход, системните данни за вход и фиксираните роли на сървъра. За да видите други входове, изисква ALTER ANY LOGIN
, или разрешение за влизане. За да видите дефинирани от потребителя роли на сървъра, изисква ALTER ANY SERVER ROLE
, или членство в ролята.
Език по подразбиране спрямо текущ език
В повечето случаи текущият език на потребителя за неговата сесия ще бъде техният език по подразбиране. Но това не винаги е непременно така, тъй като потребителят може да промени текущия език, като използва SET LANGUAGE
изявление. Това ще промени езика за текущата сесия, но техният език по подразбиране ще остане какъвто и да е.
За да научите повече, вижте Как да зададете текущия език в SQL Server (T-SQL) и 3 начина да получите езика на текущата сесия в SQL Server (T-SQL).