다음을 통해 공유


SYSTEM_USER(Transact-SQL)

기본값이 지정되지 않은 경우에 현재 로그인에 대해 시스템이 제공한 값을 테이블에 삽입할 수 있도록 허용합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

SYSTEM_USER

반환 형식

nchar

주의

CREATE TABLE 및 ALTER TABLE 문에서 SYSTEM_USER 함수를 DEFAULT 제약 조건으로 사용할 수 있습니다. 이 함수를 표준 함수로 사용할 수도 있습니다.

사용자 이름과 로그인 이름이 다르면 SYSTEM_USER가 로그인 이름을 반환합니다.

현재 사용자가 Windows 인증을 사용하여 SQL Server에 로그인하면 SYSTEM_USER가 DOMAIN\user_login_name 유형의 Windows 로그인 ID 이름을 반환합니다. 하지만 현재 사용자가 SQL Server 인증을 사용하여 SQL Server에 로그인한 경우에는 SYSTEM_USER가 SQL Server 로그인 ID 이름을 반환합니다. 예를 들어 WillisJo로 로그인한 사용자의 경우에는 WillisJo를 반환합니다.

SYSTEM_USER는 현재 실행 중인 컨텍스트의 이름을 반환합니다. EXECUTE AS 문이 컨텍스트를 전환하는 데 사용된 경우에는 SYSTEM_USER가 가장된 컨텍스트의 이름을 반환합니다.

1. 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)

2. DEFAULT 제약 조건으로 SYSTEM_USER 사용

다음 예에서는 SRep_tracking_user 열에 대한 DEFAULT 제약 조건으로 SYSTEM_USER를 사용하는 테이블을 만듭니다.

USE AdventureWorks2008R2;
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)