分享方式:


USER_ID (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體

傳回資料庫使用者的識別碼。

重要

SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 DATABASE_PRINCIPAL_ID

Transact-SQL 語法慣例

Syntax

USER_ID ( [ 'user' ] )  

注意

若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

user
要使用的使用者名稱。 usernchar。 若指定 char 值,它會隱含轉換成 nchar。 它必須用括號括住。

傳回型別

int

備註

當省略 user 時,會假設為目前的使用者。 如果參數包含 NULL 一詞,即會傳回 NULL。當 USER_ID 在 EXECUTE AS 之後呼叫時,USER_ID 會傳回模擬內容的識別碼。

未對應至特定資料庫使用者的 Windows 主體藉由群組成員資格來存取資料庫時,USER_ID 會傳回 0 (public 的識別碼)。 如果這類主體建立物件時未指定結構描述,則 SQL Server 會建立對應到 Windows 主體的隱含使用者和結構描述。 在這種情況下建立的使用者不能用來連接到資料庫。 對應至隱含使用者的 Windows 主體對 USER_ID 的呼叫會傳回隱含使用者的識別碼。

USER_ID 可用在選取清單、WHERE 子句及任何允許使用運算式的位置中。 如需詳細資訊,請參閱 Expressions (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)