Partage via


USER_ID (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Retourne le numéro d'identification d'un utilisateur de la base de données.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez DATABASE_PRINCIPAL_ID à la place.

Conventions de la syntaxe Transact-SQL

Syntaxe

USER_ID ( [ 'user' ] )  

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

user
Nom d'utilisateur à utiliser. user est de type nchar. Si une valeur char est spécifiée, elle est implicitement convertie en nchar. Les parenthèses sont obligatoires.

Types de retour

int

Notes

Si user est omis, l’utilisateur actuel est pris en compte. Si le paramètre contient le mot NULL, retourne NULL. Lorsque USER_ID est appelé après EXECUTE AS, USER_ID retourne l'ID du contexte représenté.

Lorsqu'un principal Windows qui n'est pas mappé à un utilisateur spécifique accède à une base de données parce qu'il appartient à un groupe, USER_ID retourne 0 (l'identificateur de public). Si un tel principal crée un objet sans spécifier de schéma, SQL Server créera un utilisateur implicite et un schéma mappés au principal Windows. L'utilisateur ainsi créé ne peut pas être utilisé pour une connexion à la base de données. Les appels à USER_ID effectués par un principal Windows mappé à un utilisateur implicite retourneront l'identificateur de cet utilisateur implicite.

USER_ID peut être utilisé dans une liste de sélection, dans une clause WHERE, et partout où une expression est autorisée. Pour plus d’informations, consultez Expressions (Transact-SQL)

Exemples

Dans l'exemple suivant, la valeur retournée est le numéro d'identification de l'utilisateur AdventureWorks2022 de Harold.

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

Voir aussi

USER_NAME (Transact-SQL)
sys.database_principals (Transact-SQL)
DATABASE_PRINCIPAL_ID (Transact-SQL)
Fonctions de sécurité (Transact-SQL)