SQL Serverでは、sys.server_principals
にクエリを実行することで、特定のユーザーのデフォルト言語を見つけることができます。 システムカタログビュー。
このビューには、すべてのサーバーレベルのプリンシパルの行が含まれています。プリンシパルの名前、タイプ、作成/変更日、デフォルトのデータベース、デフォルトの言語などの情報が含まれています。プリンシパルは、SQLServerリソースを要求できるエンティティです。
プリンシパルは次のいずれかになります。
Windowsレベルのプリンシパル
- Windowsドメインログイン
- Windowsローカルログイン
SQLServerレベルのプリンシパル
- SQLServerログイン
データベースレベルのプリンシパル
- データベースユーザー
- データベースの役割
- アプリケーションの役割
プリンシパルのデフォルト言語を返す例
特定のプリンシパルのデフォルト言語を取得するには、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
のデフォルト言語を取得します 主要な。プリンシパル名はサーバー内で一意です。この例では、デフォルトのデータベースとプリンシパルタイプも返します。この場合、プリンシパルはSQLServerログインです。
別のユーザーを使用した別の例を次に示します。
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)」および「SQLServerで現在のセッションの言語を取得する3つの方法(T-SQL)」を参照してください。