USER (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
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 untuk dimasukkan ke dalam tabel ketika tidak ada nilai default yang ditentukan.
Sintaks
USER
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Jenis Pengembalian
nvarchar(128)
Keterangan
USER menyediakan fungsionalitas yang sama dengan fungsi sistem USER_NAME.
Gunakan USER dengan batasan DEFAULT baik dalam pernyataan CREATE TABLE atau ALTER TABLE, atau gunakan sebagai fungsi standar apa pun.
USER selalu mengembalikan nama konteks saat ini. Ketika dipanggil setelah pernyataan EXECUTE AS, USER mengembalikan nama konteks yang ditiru.
Jika Windows utama mengakses database dengan cara keanggotaan dalam grup, USER mengembalikan nama prinsipal Windows alih-alih nama grup.
Contoh
A. 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 tataan hasil.
-----------------------------------------------------------------------
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 penjualan baris penjualan.
USE AdventureWorks2012;
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 menggambarkan 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 (SQL bertransaksi)
CURRENT_USER (SQL bertransaksi)
Fungsi Keamanan (T-SQL)
SESSION_USER (SQL Bertransaksi)
SYSTEM_USER (SQL Bertransaksi)
USER_NAME (SQL bertransaksi)
