USER (Transact-SQL)

当未指定默认值时,允许将系统为当前用户的数据库用户名提供的值插入表内。

主题链接图标Transact-SQL 语法约定

语法

USER

返回类型

char

备注

USER 提供与 USER_NAME 系统函数相同的功能。

在 CREATE TABLE 或 ALTER TABLE 语句中将 USER 和 DEFAULT 约束一起使用,或者将 USER 作为任何标准函数使用。

USER 始终返回当前上下文的名称。在 EXECUTE AS 语句后调用时,USER 将返回模拟上下文的名称。

如果 Windows 主体通过组中的成员身份访问数据库,USER 将返回 Windows 主体的名称,而不是该组的名称。

示例

A. 使用 USER 返回数据库用户名

以下示例声明一个 char 类型的变量,将 USER 的当前值赋给它,然后输出该变量以及文本说明。

DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO

下面是结果集: 

----------------------------------------------------------------------- 
The current user's database username is: dbo                            

(1 row(s) affected)

B. 将 USER 和 DEFAULT 约束一起使用

以下示例生成一个表,将 USER 用作销售行的销售员的 DEFAULT 约束。

USE AdventureWorks;
GO
CREATE TABLE inventory22
(
 part_id int IDENTITY(100, 1) NOT NULL,
 description varchar(30) NOT NULL,
 entry_person varchar(30) NOT NULL DEFAULT USER 
)
GO
INSERT inventory22 (description)
VALUES ('Red pencil')
INSERT inventory22 (description)
VALUES ('Blue pencil')
INSERT inventory22 (description)
VALUES ('Green pencil')
INSERT inventory22 (description)
VALUES ('Black pencil')
INSERT inventory22 (description)
VALUES ('Yellow pencil')
GO

下面是从表 inventory22 中选择所有信息的查询:

SELECT * FROM inventory22 ORDER BY part_id;
GO

下面是结果集(注意 entry-person 的值):

part_id     description                    entry_person                   
----------- ------------------------------ -------------------------
100         Red pencil                     dbo                            
101         Blue pencil                    dbo                            
102         Green pencil                   dbo                            
103         Black pencil                   dbo                            
104         Yellow pencil                  dbo                            

(5 row(s) affected)

C. 将 USER 与 EXECUTE AS 一起使用

以下示例演示了 USER 在模拟会话内部被调用时的行为。

SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO

下面是结果集: 

DBO
Mario
DBO

请参阅

参考

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
安全函数 (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)

其他资源

创建和修改 PRIMARY KEY 约束
修改列属性

帮助和信息

获取 SQL Server 2005 帮助