USER_ID (Transact-SQL)
返回数据库用户的标识号。
重要提示 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。请改用 DATABASE_PRINCIPAL_ID。 |
语法
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
请参阅
参考
sys.database_principals (Transact-SQL)