SESSION_USER (Transact-SQL)SESSION_USER (Transact-SQL)

SE APLICA A: síSQL Server (a partir de 2008) síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

SESSION_USER devuelve el nombre de usuario del contexto actual en la base de datos actual.SESSION_USER returns the user name of the current context in the current database.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

SESSION_USER  

Tipos devueltosReturn Types

nvarchar(128)nvarchar(128)

NotasRemarks

Utilice SESSION_USER con restricciones DEFAULT en las instrucciones CREATE TABLE o ALTER TABLE, o utilícela como cualquier función estándar.Use SESSION_USER with DEFAULT constraints in either the CREATE TABLE or ALTER TABLE statements, or use it as any standard function. SESSION_USER se puede insertar en una tabla cuando no se especifica un valor predeterminado.SESSION_USER can be inserted into a table when no default value is specified. Esta función no toma ningún argumento.This function takes no arguments. SESSION_USER se puede utilizar en consultas.SESSION_USER can be used in queries.

Si se llama a SESSION_USER después de un cambio de contexto, SESSION_USER devolverá el nombre de usuario del contexto representado.If SESSION_USER is called after a context switch, SESSION_USER will return the user name of the impersonated context.

EjemplosExamples

A.A. Utilizar SESSION_USER para devolver el nombre de usuario de la sesión actualUsing SESSION_USER to return the user name of the current session

En el siguiente ejemplo se declara una variable como nchar, se le asigna el valor actual de SESSION_USER y, a continuación, se imprime la variable con una descripción de texto.The following example declares a variable as nchar, assigns the current value of SESSION_USER to that variable, and then prints the variable with a text description.

DECLARE @session_usr nchar(30);  
SET @session_usr = SESSION_USER;  
SELECT 'This session''s current user is: '+ @session_usr;  
GO  

Éste es el conjunto de resultados cuando el usuario de la sesión es Surya:This is the result set when the session user is Surya:

--------------------------------------------------------------
This session's current user is: Surya

(1 row(s) affected)

B.B. Utilizar SESSION_USER con restricciones DEFAULTUsing SESSION_USER with DEFAULT constraints

En el siguiente ejemplo se crea una tabla que utiliza SESSION_USER como una restricción DEFAULT para el nombre de la persona que registra la recepción de un envío.The following example creates a table that uses SESSION_USER as a DEFAULT constraint for the name of the person who records receipt of a shipment.

USE AdventureWorks2012;  
GO  
CREATE TABLE deliveries3  
(  
 order_id int IDENTITY(5000, 1) NOT NULL,  
 cust_id  int NOT NULL,  
 order_date smalldatetime NOT NULL DEFAULT GETDATE(),  
 delivery_date smalldatetime NOT NULL DEFAULT   
    DATEADD(dd, 10, GETDATE()),  
 received_shipment nchar(30) NOT NULL DEFAULT SESSION_USER  
);  
GO  

Los registros agregados a la tabla se mostrarán con el nombre de usuario del usuario actual.Records added to the table will be stamped with the user name of the current user. En este ejemplo, Wanida, Sylvester y Alejandro comprueban la recepción de los envíos.In this example, Wanida, Sylvester, and Alejandro verify receipt of shipments. Se puede simular si se cambia el contexto del usuario con EXECUTE AS.This can be emulated by switching user context by using EXECUTE AS.

EXECUTE AS USER = 'Wanida'  
INSERT deliveries3 (cust_id)  
VALUES (7510);  
INSERT deliveries3 (cust_id)  
VALUES (7231);  
REVERT;  
EXECUTE AS USER = 'Sylvester'  
INSERT deliveries3 (cust_id)  
VALUES (7028);  
REVERT;  
EXECUTE AS USER = 'Alejandro'  
INSERT deliveries3 (cust_id)  
VALUES (7392);  
INSERT deliveries3 (cust_id)  
VALUES (7452);  
REVERT;  
GO  

La siguiente consulta selecciona toda la información de la tabla deliveries3.The following query selects all information from the deliveries3 table.

SELECT order_id AS 'Order #', cust_id AS 'Customer #',   
   delivery_date AS 'When Delivered', received_shipment   
   AS 'Received By'  
FROM deliveries3  
ORDER BY order_id;  
GO  

El conjunto de resultados es el siguiente.Here is the result set.

Order #   Customer #  When Delivered       Received By
--------  ----------  -------------------  -----------
5000      7510        2005-03-16 12:02:14  Wanida
5001      7231        2005-03-16 12:02:14  Wanida
5002      7028        2005-03-16 12:02:14  Sylvester
5003      7392        2005-03-16 12:02:14  Alejandro
5004      7452        2005-03-16 12:02:14  Alejandro

(5 row(s) affected)

Ejemplos: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse y Almacenamiento de datos paralelosParallel Data WarehouseExamples: Almacenamiento de datos SQL de AzureAzure SQL Data Warehouse and Almacenamiento de datos paralelosParallel Data Warehouse

C. Utilizar SESSION_USER para devolver el nombre de usuario de la sesión actualC: Using SESSION_USER to return the user name of the current session

En el siguiente ejemplo se devuelve la sesión de usuario de la sesión actual.The following example returns the session user for the current session.

SELECT SESSION_USER;  

Consulte tambiénSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL) CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL) CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL) SYSTEM_USER (Transact-SQL)
Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
USER (Transact-SQL) USER (Transact-SQL)
USER_NAME (Transact-SQL)USER_NAME (Transact-SQL)