USER_NAME (Transact-SQL)
Restituisce un nome di un utente del database corrispondente al numero di identificazione specificato.
Sintassi
USER_NAME ( [ id ] )
Argomenti
- id
Numero di identificazione associato a un utente del database. id è di tipo int. È necessario utilizzare le parentesi.
Tipi restituiti
nvarchar(256)
Osservazioni
Se id viene omesso, viene utilizzato l'utente corrente nel contesto corrente. Se è inclusa la parola NULL, verrà restituito NULL. Se la funzione USER_NAME viene richiamata senza specificare id dopo un'istruzione EXECUTE AS, viene restituito il nome dell'utente rappresentato. Se un'entità di Windows accede al database in base all'appartenenza a un gruppo, USER_NAME restituisce il nome dell'entità di Windows anziché il gruppo.
Esempi
A. Utilizzo di USER_NAME
Nell'esempio seguente viene restituito il nome utente per l'ID utente 13.
SELECT USER_NAME(13);
GO
B. Utilizzo di USER_NAME senza un ID
Nell'esempio seguente viene restituito il nome dell'utente corrente senza specificare un ID.
SELECT USER_NAME();
GO
Set di risultati (per un utente membro del ruolo predefinito del server sysadmin):
------------------------------
dbo
(1 row(s) affected)
C. Utilizzo di USER_NAME nella clausola WHERE
Nell'esempio seguente viene restituita la riga di sysusers contenente un nome che corrisponde al risultato della funzione di sistema USER_NAME per il numero di identificazione utente 1.
SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO
Set di risultati:
name
------------------------------
dbo
(1 row(s) affected)
D. Chiamata della funzione USER_NAME durante la rappresentazione tramite EXECUTE AS
Nell'esempio seguente viene illustrato il comportamento della funzione USER_NAME durante la rappresentazione.
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
Set di risultati:
DBO
Zelig
DBO