Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Returns the name of the current user. This function is equivalent to USER_NAME().
Transact-SQL Syntax Conventions
Syntax
CURRENT_USER
Return Types
sysname
Remarks
CURRENT_USER returns the name of the current security context. If CURRENT_USER is executed after a call to EXECUTE AS switches context, CURRENT_USER will return the name of the impersonated context. If a Windows principal accessed the database by way of membership in a group, the name of the Windows principal will be returned instead of the name of the group.
Examples
A. Using CURRENT_USER to return the current user name
The following example returns the name of the current user.
SELECT CURRENT_USER;
GO
B. Using CURRENT_USER as a DEFAULT constraint
The following example creates a table that uses CURRENT_USER
as a DEFAULT
constraint for the order_person
column on a sales row.
USE AdventureWorks;
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'orders22')
DROP TABLE orders22
GO
SET NOCOUNT ON
CREATE TABLE orders22
(
order_id int IDENTITY(1000, 1) NOT NULL,
cust_id int NOT NULL,
order_date smalldatetime NOT NULL DEFAULT GETDATE(),
order_amt money NOT NULL,
order_person char(30) NOT NULL DEFAULT CURRENT_USER
)
GO
The following code inserts a record in the table. The user that is executing these statements is named Wanida
.
INSERT orders22 (cust_id, order_amt)
VALUES (5105, 577.95)
GO
SET NOCOUNT OFF
GO
The following query selects all information from the orders22
table.
SELECT * FROM orders22;
GO
Here is the result set.
order_id cust_id order_date order_amt order_person
----------- ----------- -------------------- ------------ ------------
1000 5105 2005-04-03 23:34:00 577.95 Wanida
(1 row(s) affected)
C. Using CURRENT_USER from an impersonated context
In the following example, user Wanida
executes the following Transact-SQL code.
SELECT CURRENT_USER;
GO
EXECUTE AS USER = 'Arnalfo';
GO
SELECT CURRENT_USER;
GO
REVERT;
GO
SELECT CURRENT_USER;
GO
Here is the result set.
Wanida
Arnalfo
Wanida
See Also
Reference
USER_NAME (Transact-SQL)
SYSTEM_USER (Transact-SQL)
sys.database_principals (Transact-SQL)
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
System Functions (Transact-SQL)