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.
Permite insertar en una tabla un valor proporcionado por el sistema para el inicio de sesión actual cuando no se especifica ningún valor predeterminado.
Convenciones de sintaxis de Transact-SQL
Sintaxis
SYSTEM_USER
Tipos de valor devueltos
nchar
Notas
En las instrucciones CREATE TABLE y ALTER TABLE puede utilizar la función SYSTEM_USER con restricciones DEFAULT. También puede utilizarla como cualquier función estándar.
Si el nombre de usuario y el nombre de inicio de sesión con diferentes, SYSTEM_USER devuelve el nombre de inicio de sesión.
Si el usuario actual ha iniciado la sesión en SQL Server con la autenticación de Windows, SYSTEM_USER devuelve el nombre de identificación del inicio de sesión de Windows con el formato: DOMAIN\user_login_name. Sin embargo, si el usuario actual ha iniciado la sesión en SQL Server con la autenticación de SQL Server, SYSTEM_USER devuelve el nombre de identificación de inicio de sesión en SQL Server, por ejemplo WillisJo para un usuario que ha iniciado la sesión como WillisJo.
SYSTEM_USER devuelve el nombre del contexto de ejecución actual. Si se ha usado la instrucción EXECUTE AS para cambiar el contexto, SYSTEM_USER devuelve el nombre del contexto suplantado.
Ejemplos
A. Usar SYSTEM_USER para devolver el nombre de usuario actual del sistema
En el siguiente ejemplo se declara una variable char
, se almacena en ella el valor actual de SYSTEM_USER
y, a continuación, se imprime el valor almacenado en la variable.
DECLARE @sys_usr char(30);
SET @sys_usr = SYSTEM_USER;
SELECT 'The current system user is: '+ @sys_usr;
GO
Éste es el conjunto de resultados.
----------------------------------------------------------
The current system user is: WillisJo
(1 row(s) affected)
B. Usar SYSTEM_USER con restricciones DEFAULT
En el siguiente ejemplo se crea una tabla con SYSTEM_USER
como una restricción DEFAULT
para la columna SRep_tracking_user
.
USE AdventureWorks;
GO
CREATE TABLE Sales_Tracking
(
Territory_id int IDENTITY(2000, 1) NOT NULL,
Rep_id int NOT NULL,
Last_sale datetime NOT NULL DEFAULT GETDATE(),
SRep_tracking_user varchar(30) NOT NULL DEFAULT SYSTEM_USER
)
GO
INSERT Sales_Tracking (Rep_id)
VALUES (151)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (293, '5/15/98')
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (27882, '6/20/98')
INSERT Sales_Tracking (Rep_id)
VALUES (21392)
INSERT Sales_Tracking (Rep_id, Last_sale)
VALUES (24283, '11/03/98')
GO
En la siguiente consulta se selecciona toda la información de la tabla Sales_Tracking
:
SELECT * FROM Sales_Tracking ORDER BY Rep_id;
GO
Éste es el conjunto de resultados.
Territory_id Rep_id Last_sale SRep_tracking_user
----------- ----- -------------------- ------------------
2000 151 Mar 4 1998 10:36AM ArvinDak
2001 293 May 15 1998 12:00AM ArvinDak
2003 21392 Mar 4 1998 10:36AM ArvinDak
2004 24283 Nov 3 1998 12:00AM ArvinDak
2002 27882 Jun 20 1998 12:00AM ArvinDak
(5 row(s) affected)
Vea también
Referencia
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SESSION_USER (Transact-SQL)
Funciones del sistema (Transact-SQL)
USER (Transact-SQL)
Otros recursos
Permitir valores NULL
Proteger Notification Services
Valores predeterminados
Valores NULL