USER (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform 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.
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)