USER (Transact-SQL)
Permet d'insérer dans une table une valeur système si aucune valeur par défaut n'a été spécifiée pour le nom de l'utilisateur actuel.
Syntaxe
USER
Type des valeurs renvoyées
char
Notes
Cette instruction offre la même fonctionnalité que la fonction système USER_NAME.
Utilisez la fonction USER avec les contraintes DEFAULT dans les instructions CREATE TABLE ou ALTER TABLE, ou utilisez-la comme une fonction standard.
USER retourne toujours le nom du contexte en cours. Lorsqu'elle est appelée après une instruction EXECUTE AS, USER retourne le nom du contexte représenté.
Si une entité de sécurité Windows accède à la base de données du fait de son appartenance à un groupe, USER retourne le nom de l'entité de sécurité Windows au lieu du nom du groupe.
Exemples
A. Utilisation de USER pour retourner le nom d'utilisateur de la base de données
L'exemple suivant déclare une variable char, lui attribue la valeur actuelle de USER et l'imprime avec une description de texte.
DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO
Voici l'ensemble des résultats.
-----------------------------------------------------------------------
The current user's database username is: dbo
(1 row(s) affected)
B. Utilisation de USER avec les contraintes DEFAULT
L'exemple suivant crée une table faisant appel à USER en tant que contrainte DEFAULT pour le vendeur d'une ligne ventes.
USE AdventureWorks;
GO
CREATE TABLE inventory22
(
part_id int IDENTITY(100, 1) NOT NULL,
description varchar(30) NOT NULL,
entry_person varchar(30) NOT NULL DEFAULT USER
)
GO
INSERT inventory22 (description)
VALUES ('Red pencil')
INSERT inventory22 (description)
VALUES ('Blue pencil')
INSERT inventory22 (description)
VALUES ('Green pencil')
INSERT inventory22 (description)
VALUES ('Black pencil')
INSERT inventory22 (description)
VALUES ('Yellow pencil')
GO
Voici la requête permettant de sélectionner toutes les informations de la table inventory22 :
SELECT * FROM inventory22 ORDER BY part_id;
GO
Voici le jeu de résultats (remarquez la valeur entry-person) :
part_id description entry_person
----------- ------------------------------ -------------------------
100 Red pencil dbo
101 Blue pencil dbo
102 Green pencil dbo
103 Black pencil dbo
104 Yellow pencil dbo
(5 row(s) affected)
C. Utilisation de USER avec EXECUTE AS
L'exemple suivant montre le comportement de USER quand cette instruction est appelée à l'intérieur d'une session représentée.
SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO
Voici l'ensemble des résultats.
DBO
Mario
DBO
Voir aussi