Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Endpoint de analítica SQL en Microsoft Fabric
Almacén en Microsoft Fabric
Base de datos SQL en Microsoft Fabric
SESSION_USER devuelve el nombre de usuario del contexto actual en la base de datos actual.
Convenciones de sintaxis de Transact-SQL
Sintaxis
SESSION_USER
Tipos de valor devuelto
nvarchar(128)
Comentarios
Usa SESSION_USER con DEFAULT restricciones en las CREATE TABLE sentencias o ALTER TABLE , o úsala como cualquier función estándar. SESSION_USER se puede insertar en una tabla cuando no se especifica un valor predeterminado. Esta función no toma ningún argumento. SESSION_USER se puede utilizar en consultas.
Si se llama a SESSION_USER después de un cambio de contexto, SESSION_USER devolverá el nombre de usuario del contexto representado.
Ejemplos
A. Utilizar SESSION_USER para devolver el nombre de usuario de la sesión actual
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.
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 session's current user is: Surya
(1 row(s) affected)
B. Usando SESSION_USER con DEFAULT restricciones
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.
USE AdventureWorks2022;
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. En este ejemplo, Wanida, Sylvester y Alejandro comprueban la recepción de los envíos. Se puede simular si se cambia el contexto del usuario con 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.
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
Este es el conjunto de resultados.
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: Azure Synapse Analytics
C. Usar SESSION_USER para devolver el nombre de usuario de la sesión actual
En el siguiente ejemplo se devuelve la sesión de usuario de la sesión actual.
SELECT SESSION_USER;