USER_NAME (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Restituisce un nome di un utente del database corrispondente al numero di identificazione specificato.

Icona di collegamento a un articolo Convenzioni della sintassi Transact-SQL

Sintassi

USER_NAME ( [ id ] )  

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Argomenti

id
Numero di identificazione associato a un utente del database. id è di tipo int. È necessario utilizzare le parentesi.

Tipi restituiti

nvarchar(128)

Commenti

Se id viene omesso, viene usato l'utente corrente nel contesto corrente. Se nel parametro è inclusa la parola NULL, verrà restituito NULL. Se la funzione USER_NAME viene chiamata 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.

Nota

Sebbene la funzione USER_NAME sia supportata nel database SQL di Azure, l'uso di Execute As con USER_NAME non è supportato nel database SQL di Azure.

Esempi

R. 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  

Questo è il 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  

Questo è il set di risultati.

DBO  
Zelig  
DBO

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

E. Utilizzo di USER_NAME senza un ID

Nell'esempio seguente viene restituito il nome dell'utente corrente senza specificare un ID.

SELECT USER_NAME();  

Ecco il set di risultati di un utente attualmente connesso.

------------------------------   
User7                              

F. 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);  

Questo è il set di risultati.

name                             
------------------------------   
User7                              

Vedere anche

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Funzioni di sistema (Transact-SQL)
SYSTEM_USER (Transact-SQL)