SYSTEM_USER (Transact-SQL)

現在のログインに既定値が指定されていない場合に、システム提供の値をテーブルに挿入します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SYSTEM_USER

戻り値の型

nchar

解説

SYSTEM_USER 関数は、CREATE TABLE および ALTER TABLE ステートメント内で DEFAULT 制約と共に使用できます。標準的な関数としても使用できます。

ユーザー名とログイン名が異なる場合、SYSTEM_USER ではログイン名が返されます。

現在のユーザーが Windows 認証によって SQL Server にログインした場合、SYSTEM_USER では、Windows ログインの識別名が DOMAIN\user_login_name の形式で返されます。現在のユーザーが SQL Server 認証によって SQL Server にログインした場合は、SQL Server ログインの識別名が返されます。たとえば、WillisJo としてログインしたユーザーの場合は WillisJo となります。

SYSTEM_USER では、現在の実行コンテキストの名前が返されます。EXECUTE AS ステートメントを使用してコンテキストが切り替えられていた場合、SYSTEM_USER では権限が借用されたコンテキストの名前が返されます。

A. SYSTEM_USER を使用して現在のシステム ユーザー名を返す

次の例では、char 変数を宣言し、SYSTEM_USER の現在の値をこの変数に格納した後、変数に格納されている値を出力します。

DECLARE @sys_usr char(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current system user is: '+ @sys_usr;
GO

以下に結果セットを示します。

---------------------------------------------------------- 
The current system user is: WillisJo                             

(1 row(s) affected)

B. SYSTEM_USER を DEFAULT 制約と共に使用する

次の例では、テーブルを作成し、SRep_tracking_user 列の DEFAULT 制約として SYSTEM_USER を使用します。

USE AdventureWorks;
GO
CREATE TABLE Sales_Tracking
(
    Territory_id int IDENTITY(2000, 1) NOT NULL,
    Rep_id  int NOT NULL,
    Last_sale datetime NOT NULL DEFAULT GETDATE(),
    SRep_tracking_user varchar(30) NOT NULL DEFAULT SYSTEM_USER
)
GO
INSERT Sales_Tracking (Rep_id)
VALUES (151)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (293, '5/15/98')
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (27882, '6/20/98')
INSERT Sales_Tracking (Rep_id)
VALUES (21392)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (24283, '11/03/98')
GO

次のクエリでは、Sales_Tracking テーブルからすべての情報を選択します。

SELECT * FROM Sales_Tracking ORDER BY Rep_id;
GO

以下に結果セットを示します。

Territory_id Rep_id Last_sale            SRep_tracking_user    
-----------  -----  -------------------- ------------------ 
2000         151    Mar 4 1998 10:36AM   ArvinDak              
2001         293    May 15 1998 12:00AM  ArvinDak              
2003         21392  Mar 4 1998 10:36AM   ArvinDak              
2004         24283  Nov 3 1998 12:00AM   ArvinDak              
2002         27882  Jun 20 1998 12:00AM  ArvinDak              

(5 row(s) affected)

参照

関連項目

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
システム関数 (Transact-SQL)
USER (Transact-SQL)

その他の技術情報

NULL 値の許容
Notification Services のセキュリティの設定
既定値
NULL 値

ヘルプおよび情報

SQL Server 2005 の参考資料の入手