Partilhar via


USER (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Permite um valor fornecido pelo sistema para o nome de usuário de banco de dados do usuário atual a ser inserido em uma tabela quando nenhum valor padrão é especificado.

Convenções de sintaxe de Transact-SQL

Sintaxe

USER  

Tipos de retorno

nvarchar(128)

Comentários

USER fornece a mesma funcionalidade como a função de sistema USER_NAME.

Use USER com restrições DEFAULT nas instruções CREATE TABLE ou ALTER TABLE, ou use como qualquer função padrão.

USER sempre retorna o nome do contexto atual. Quando chamado depois de uma instrução EXECUTE AS, USER retorna o nome do contexto representado.

Se um principal do Windows acessar o banco de dados específico por meio da associação em um grupo, USER retornará o principal do Windows em vez do nome do grupo.

Exemplos

a. Usando USER para retornar o nome do usuário do banco de dados

O exemplo a seguir declara uma variável como char, atribui o valor atual de USER a ela e imprime a variável com uma descrição de texto.

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

Veja a seguir o conjunto de resultados.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Usando USER com restrições DEFAULT

O exemplo a seguir cria uma tabela usando USER como uma restrição DEFAULT para o vendedor de uma linha de vendas.

USE AdventureWorks2022;  
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  

Esta é a consulta para selecionar todas as informações da tabela inventory22:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Este é o conjunto de resultados (observe o valor 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. Usando USER em combinação com EXECUTE AS

O exemplo a seguir ilustra o comportamento de USER quando chamado em uma sessão representada.

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

Veja a seguir o conjunto de resultados.

DBO
Mario
DBO

Confira também

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Funções de segurança (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)