USER (Transact-SQL)

Consente l'inserimento in una tabella di un valore fornito dal sistema per il nome utente di database dell'utente corrente quando non è stato specificato alcun valore predefinito.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

USER

Tipi restituiti

char

Osservazioni

USER è caratterizzata dalle stesse funzionalità della funzione di sistema USER_NAME.

Utilizzare la funzione USER con vincoli DEFAULT nell'istruzione CREATE TABLE o ALTER TABLE oppure come qualsiasi funzione standard.

USER restituisce sempre il nome del contesto corrente. Se richiamata dopo un'istruzione EXECUTE AS, la funzione USER restituisce il nome del contesto rappresentato.

Se un'entità di Windows accede al database in base all'appartenenza a un gruppo, la funzione USER restituisce il nome dell'entità di Windows anziché il nome del gruppo.

Esempi

A. Utilizzo della funzione USER per recuperare il nome dell'utente del database

Nell'esempio seguente viene dichiarata una variabile di tipo char, viene assegnato il valore corrente di USER alla variabile e vengono restituite la variabile e una descrizione.

DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO

Set di risultati:

----------------------------------------------------------------------- 
The current user's database username is: dbo                            

(1 row(s) affected)

B. Utilizzo della funzione USER con vincoli DEFAULT

Nell'esempio seguente viene creata una tabella tramite l'utilizzo della funzione USER come vincolo DEFAULT per la colonna relativa al rappresentante di una riga di dati sulle vendite.

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

Di seguito è riportata la query per la selezione di tutte le informazioni della tabella inventory22.

SELECT * FROM inventory22 ORDER BY part_id;
GO

Set di risultati (si noti il valore 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. Utilizzo della funzione USER in combinazione con EXECUTE AS

Nell'esempio seguente viene illustrato il funzionamento di USER se chiamata all'interno di una sessione rappresentata.

SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO

Set di risultati:

DBO
Mario
DBO