USER_ID (Transact-SQL)

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

重要说明重要提示

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

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

语法

USER_ID ( [ 'user' ] )

参数

  • 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)

示例

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

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

请参阅

参考

USER_NAME (Transact-SQL)

sys.database_principals (Transact-SQL)

DATABASE_PRINCIPAL_ID (Transact-SQL)

安全函数 (Transact-SQL)