Compartir a través de


USER (Transact-SQL)

Permite insertar en una tabla un valor proporcionado por el sistema para el nombre de usuario actual de la base de datos cuando no se especifica ningún valor predeterminado.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

USER

Tipos de valor devueltos

char

Notas

USER ofrece la misma funcionalidad que la función del sistema USER_NAME.

Puede utilizar USER con restricciones DEFAULT en las instrucciones CREATE TABLE o ALTER TABLE, o bien utilizarla como cualquier función estándar.

USER siempre devuelve el nombre del contexto de actual. Cuando se llama después de una instrucción EXECUTE AS, USER devuelve el nombre del contexto representado.

Si una entidad de seguridad de Windows ha tenido acceso a la base de datos en forma de miembro de un grupo, USER devuelve el nombre de la entidad de seguridad de Windows en vez del nombre del grupo.

Ejemplos

A. Usar USER para devolver el nombre de usuario de la base de datos

En el siguiente ejemplo se declara una variable como char, se le asigna el valor actual de USER y, a continuación, se imprime la variable con una descripción de texto.

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

Éste es el conjunto de resultados. 

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

(1 row(s) affected)

B. Usar USER con restricciones DEFAULT

En el siguiente ejemplo se crea una tabla que usa USER como una restricción DEFAULT para el vendedor de una fila de ventas.

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

Ésta es la consulta para seleccionar toda la información de la tabla inventory22:

SELECT * FROM inventory22 ORDER BY part_id;
GO

Éste es el conjunto de resultados (observe el valor de 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. Usar USER en combinación con EXECUTE AS

En el siguiente ejemplo se muestra el comportamiento de USER cuando se llama en una sesión representada.

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

Éste es el conjunto de resultados. 

DBO
Mario
DBO

Vea también

Referencia

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Funciones de seguridad (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)

Otros recursos

Crear y modificar restricciones PRIMARY KEY
Modificar las propiedades de una columna

Ayuda e información

Obtener ayuda sobre SQL Server 2005