Bagikan melalui


USER (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Konvensi sintaks transact-SQL

Sintaksis

USER  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Jenis Kembalian

nvarchar(128)

Keterangan

USER menyediakan fungsionalitas yang sama dengan fungsi sistem USER_NAME.

Gunakan USER dengan batasan DEFAULT dalam pernyataan CREATE TABLE atau ALTER TABLE, atau gunakan sebagai fungsi standar apa pun.

USER selalu mengembalikan nama konteks saat ini. Saat dipanggil setelah pernyataan EXECUTE AS, USER mengembalikan nama konteks yang ditiru.

Jika prinsipal Windows mengakses database dengan cara keanggotaan dalam grup, USER mengembalikan nama prinsipal Windows, bukan nama grup.

Contoh

J. Menggunakan USER untuk mengembalikan nama pengguna database

Contoh berikut mendeklarasikan variabel sebagai char, menetapkan nilai USER saat ini ke dalamnya, lalu mencetak variabel dengan deskripsi teks.

DECLARE @usr CHAR(30)  
SET @usr = user  
SELECT 'The current user''s database username is: '+ @usr  
GO  

Berikut adalah hasil yang ditetapkan.

-----------------------------------------------------------------------  
The current user's database username is: dbo  
 
(1 row(s) affected)

B. Menggunakan USER dengan batasan DEFAULT

Contoh berikut membuat tabel dengan menggunakan USER sebagai DEFAULT batasan untuk tenaga penjual baris penjualan.

USE AdventureWorks2022;  
GO  
CREATE TABLE inventory22  
(  
 part_id INT IDENTITY(100, 1) NOT NULL,  
 description VARCHAR(30) NOT NULL,  
 entry_person VARCHAR(30) NOT NULL DEFAULT USER   
)  
GO  
INSERT inventory22 (description)  
VALUES ('Red pencil')  
INSERT inventory22 (description)  
VALUES ('Blue pencil')  
INSERT inventory22 (description)  
VALUES ('Green pencil')  
INSERT inventory22 (description)  
VALUES ('Black pencil')  
INSERT inventory22 (description)  
VALUES ('Yellow pencil')  
GO  

Ini adalah kueri untuk memilih semua informasi dari inventory22 tabel:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Berikut adalah tataan hasilnya (perhatikan nilainya entry-person ):

part_id     description                    entry_person
----------- ------------------------------ -------------------------
100         Red pencil                     dbo
101         Blue pencil                    dbo
102         Green pencil                   dbo
103         Black pencil                   dbo
104         Yellow pencil                  dbo
 
(5 row(s) affected)

C. Menggunakan USER dalam kombinasi dengan EXECUTE AS

Contoh berikut mengilustrasikan perilaku USER ketika dipanggil di dalam sesi yang ditiru.

SELECT USER;  
GO  
EXECUTE AS USER = 'Mario';  
GO  
SELECT USER;  
GO  
REVERT;  
GO  
SELECT USER;  
GO  

Berikut adalah hasil yang ditetapkan.

DBO
Mario
DBO

Lihat Juga

ALTER TABLE (Transact-SQL)
BUAT TABEL (Transact-SQL)
CURRENT_TIMESTAMP (T-SQL)
CURRENT_USER (T-SQL)
Fungsi Keamanan (T-SQL)
SESSION_USER (T-SQL)
SYSTEM_USER (T-SQL)
USER_NAME (T-SQL)