Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Database Azure
SQLInstans
Terkelola Azure SQLAzure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
SESSION_USER mengembalikan nama pengguna konteks saat ini dalam database saat ini.
Sintaks
SESSION_USER
Jenis Kembalian
nvarchar(128)
Keterangan
Gunakan SESSION_USER dengan batasan DEFAULT dalam pernyataan CREATE TABLE atau ALTER TABLE, atau gunakan sebagai fungsi standar apa pun. SESSION_USER dapat disisipkan ke dalam tabel ketika tidak ada nilai default yang ditentukan. Fungsi ini tidak membutuhkan argumen. SESSION_USER dapat digunakan dalam kueri.
Jika SESSION_USER dipanggil setelah pengalihan konteks, SESSION_USER akan mengembalikan nama pengguna konteks yang ditiru.
Contoh
J. Menggunakan SESSION_USER untuk mengembalikan nama pengguna sesi saat ini
Contoh berikut mendeklarasikan variabel sebagai nchar, menetapkan nilai saat ini ke SESSION_USER variabel tersebut, lalu mencetak variabel dengan deskripsi teks.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Ini adalah hasil yang ditetapkan ketika pengguna sesi adalah Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Menggunakan SESSION_USER dengan batasan DEFAULT
Contoh berikut membuat tabel yang menggunakan SESSION_USER sebagai DEFAULT batasan untuk nama orang yang merekam tanda terima pengiriman.
USE AdventureWorks2022;
GO
CREATE TABLE deliveries3
(
order_id INT IDENTITY(5000, 1) NOT NULL,
cust_id INT NOT NULL,
order_date SMALLDATETIME NOT NULL DEFAULT GETDATE(),
delivery_date SMALLDATETIME NOT NULL DEFAULT
DATEADD(dd, 10, GETDATE()),
received_shipment NCHAR(30) NOT NULL DEFAULT SESSION_USER
);
GO
Rekaman yang ditambahkan ke tabel akan diberi stempel dengan nama pengguna pengguna saat ini. Dalam contoh ini, Wanida, Sylvester, dan Alejandro verifikasi penerimaan pengiriman. Ini dapat ditimulasi dengan mengalihkan konteks pengguna dengan menggunakan EXECUTE AS.
EXECUTE AS USER = 'Wanida'
INSERT deliveries3 (cust_id)
VALUES (7510);
INSERT deliveries3 (cust_id)
VALUES (7231);
REVERT;
EXECUTE AS USER = 'Sylvester'
INSERT deliveries3 (cust_id)
VALUES (7028);
REVERT;
EXECUTE AS USER = 'Alejandro'
INSERT deliveries3 (cust_id)
VALUES (7392);
INSERT deliveries3 (cust_id)
VALUES (7452);
REVERT;
GO
Kueri berikut memilih semua informasi dari deliveries3 tabel.
SELECT order_id AS 'Order #', cust_id AS 'Customer #',
delivery_date AS 'When Delivered', received_shipment
AS 'Received By'
FROM deliveries3
ORDER BY order_id;
GO
Berikut set hasilnya.
Order # Customer # When Delivered Received By
-------- ---------- ------------------- -----------
5000 7510 2005-03-16 12:02:14 Wanida
5001 7231 2005-03-16 12:02:14 Wanida
5002 7028 2005-03-16 12:02:14 Sylvester
5003 7392 2005-03-16 12:02:14 Alejandro
5004 7452 2005-03-16 12:02:14 Alejandro
(5 row(s) affected)
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Menggunakan SESSION_USER untuk mengembalikan nama pengguna sesi saat ini
Contoh berikut mengembalikan pengguna sesi untuk sesi saat ini.
SELECT SESSION_USER;
Lihat Juga
ALTER TABLE (Transact-SQL)
BUAT TABEL (Transact-SQL)
CURRENT_TIMESTAMP (T-SQL)
CURRENT_USER (T-SQL)
SYSTEM_USER (T-SQL)
Fungsi Sistem (Transact-SQL)
PENGGUNA (Transact-SQL)
USER_NAME (T-SQL)