SYSTEM_USER(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)