USER_ID (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

返回数据库用户的标识号。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 DATABASE_PRINCIPAL_ID

Transact-SQL 语法约定

语法

USER_ID ( [ 'user' ] )  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

user
要使用的用户名。 user 为 nchar。 如果指定的是 char 类型的值,则将其隐式转换为 nchar。 需要使用括号。

返回类型

int

备注

省略 user 时,则假定为当前用户。 如果此参数包含词 NULL,将返回 NULL。当在 EXECUTE AS 之后调用 USER_ID 时,USER_ID 将返回模拟上下文的 ID。

当未映射到特定数据库用户的 Windows 主体使用组成员身份访问数据库时,USER_ID 将返回 0(public 的 ID)。 如果此类主体在不指定架构的情况下创建对象,SQL Server 将创建映射到 Windows 主体的隐式用户和架构。 在这些情况下创建的用户不能用来连接到数据库。 映射到隐式用户的 Windows 主体调用 USER_ID 将返回该隐式用户的 ID。

USER_ID 可以在选择列表、WHERE 子句和任何允许使用表达式的地方使用。 有关详细信息,请参阅表达式 (Transact-SQL)

示例

以下示例返回 AdventureWorks2022 用户 Harold 的标识号。

USE AdventureWorks2022;  
SELECT USER_ID('Harold');  
GO  

另请参阅

USER_NAME (Transact-SQL)
sys.database_principals (Transact-SQL)
DATABASE_PRINCIPAL_ID (Transact-SQL)
安全函数 (Transact-SQL)