SYSTEM_USER (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Memungkinkan nilai yang disediakan sistem untuk masuk saat ini untuk dimasukkan ke dalam tabel ketika tidak ada nilai default yang ditentukan.

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

SYSTEM_USER  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Pengembalian

nvarchar(128)

Keterangan

Anda dapat menggunakan fungsi SYSTEM_USER dengan batasan DEFAULT dalam pernyataan CREATE TABLE dan ALTER TABLE. Anda juga dapat menggunakannya sebagai fungsi standar apa pun.

Jika nama pengguna dan nama login berbeda, SYSTEM_USER mengembalikan nama login.

Jika pengguna saat ini masuk ke SQL Server dengan menggunakan Autentikasi Windows, SYSTEM_USER mengembalikan nama identifikasi login Windows dalam formulir: user_login_name DOMAIN\. Namun, jika pengguna saat ini masuk ke SQL Server dengan menggunakan Autentikasi SQL Server, SYSTEM_USER mengembalikan nama identifikasi login SQL Server, seperti WillisJo untuk pengguna yang masuk sebagai WillisJo.

SYSTEM_USER mengembalikan nama konteks yang sedang dijalankan. Jika pernyataan EXECUTE AS telah digunakan untuk beralih konteks, SYSTEM_USER mengembalikan nama konteks yang ditiru.

Anda tidak dapat MENJALANKAN SEBAGAI SYSTEM_USER.

Contoh

A. Menggunakan SYSTEM_USER untuk mengembalikan nama pengguna sistem saat ini

Contoh berikut mendeklarasikan char variabel, menyimpan nilai SYSTEM_USER saat ini dalam variabel, lalu mencetak nilai yang disimpan dalam variabel.

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

Berikut adalah tataan hasil.

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

(1 row(s) affected)

B. Menggunakan SYSTEM_USER dengan batasan DEFAULT

Contoh berikut membuat tabel dengan SYSTEM_USER sebagai DEFAULT batasan SRep_tracking_user untuk kolom.

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  

Kueri berikut untuk memilih semua informasi dari Sales_Tracking tabel:

SELECT * FROM Sales_Tracking ORDER BY Rep_id;  
GO  

Berikut adalah hasil yang ditetapkan.

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)

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

C. Menggunakan SYSTEM_USER untuk mengembalikan nama pengguna sistem saat ini

Contoh berikut mengembalikan nilai saat ini dari SYSTEM_USER.

SELECT SYSTEM_USER;  

Lihat juga

ALTER TABLE (Transact-SQL)
BUAT TABEL (Transact-SQL)
CURRENT_TIMESTAMP (SQL bertransaksi)
CURRENT_USER (SQL bertransaksi)
SESSION_USER (SQL Bertransaksi)
Fungsi Sistem (SQL Bertransaksi)
USER (SQL Bertransaksi)