USER_ID (Transact-SQL)

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

重要说明重要提示

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

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

语法

USER_ID ( [ 'user' ] )

参数

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

返回类型

int

注释

当省略 user 时,则假定为当前用户。当在 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)

示例

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

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