SYSTEM_USER (Transact-SQL)SYSTEM_USER (Transact-SQL)

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

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.Allows a system-supplied value for the current login to be inserted into a table when no default value is specified.

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

SintaxisSyntax

SYSTEM_USER  

Tipos devueltosReturn Types

ncharnchar

NotasRemarks

En las instrucciones CREATE TABLE y ALTER TABLE puede utilizar la función SYSTEM_USER con restricciones DEFAULT.You can use the SYSTEM_USER function with DEFAULT constraints in the CREATE TABLE and ALTER TABLE statements. También puede utilizarla como cualquier función estándar.You can also use it as any standard function.

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.If the user name and login name are different, SYSTEM_USER returns the login name.

Si el usuario actual ha iniciado la sesión en SQL ServerSQL 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.If the current user is logged in to SQL ServerSQL Server by using Windows Authentication, SYSTEM_USER returns the Windows login identification name in the form: DOMAIN\user_login_name. Sin embargo, si el usuario actual ha iniciado la sesión en SQL ServerSQL Server con la autenticación de SQL Server, SYSTEM_USER devuelve el nombre de identificación de inicio de sesión en SQL ServerSQL Server, por ejemplo WillisJo para un usuario que ha iniciado la sesión como WillisJo.However, if the current user is logged in to SQL ServerSQL Server by using SQL Server Authentication, SYSTEM_USER returns the SQL ServerSQL Server login identification name, such as WillisJo for a user logged in as WillisJo.

SYSTEM_USER devuelve el nombre del contexto de ejecución actual.SYSTEM_USER returns the name of the currently executing context. Si se ha usado la instrucción EXECUTE AS para cambiar el contexto, SYSTEM_USER devuelve el nombre del contexto suplantado.If the EXECUTE AS statement has been used to switch context, SYSTEM_USER returns the name of the impersonated context.

EjemplosExamples

A.A. Usar SYSTEM_USER para devolver el nombre de usuario actual del sistemaUsing SYSTEM_USER to return the current system user name

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.The following example declares a char variable, stores the current value of SYSTEM_USER in the variable, and then prints the value stored in the variable.

DECLARE @sys_usr char(30);  
SET @sys_usr = SYSTEM_USER;  
SELECT 'The current system user is: '+ @sys_usr;  
GO  

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

----------------------------------------------------------
The current system user is: WillisJo

(1 row(s) affected)

B.B. Usar SYSTEM_USER con restricciones DEFAULTUsing SYSTEM_USER with DEFAULT constraints

En el siguiente ejemplo se crea una tabla con SYSTEM_USER como una restricción DEFAULT para la columna SRep_tracking_user.The following example creates a table with SYSTEM_USER as a DEFAULT constraint for the SRep_tracking_user column.

USE AdventureWorks2012;  
GO  
CREATE TABLE Sales.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.Sales_Tracking (Rep_id)  
VALUES (151);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (293, '19980515');  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (27882, '19980620');  
INSERT Sales.Sales_Tracking (Rep_id)  
VALUES (21392);  
INSERT Sales.Sales_Tracking (Rep_id, Last_sale)  
VALUES (24283, '19981130');  
GO  

En la siguiente consulta se selecciona toda la información de la tabla Sales_Tracking:The following query to selects all the information from the Sales_Tracking table:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;  
GO  

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

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)

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. Usar SYSTEM_USER para devolver el nombre de usuario actual del sistemaC: Using SYSTEM_USER to return the current system user name

El siguiente ejemplo devuelve el valor actual de SYSTEM_USER.The following example returns the current value of SYSTEM_USER.

SELECT SYSTEM_USER;  

Ver 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)
SESSION_USER (Transact-SQL) SESSION_USER (Transact-SQL)
Funciones del sistema (Transact-SQL) System Functions (Transact-SQL)
USER (Transact-SQL)USER (Transact-SQL)