SESSION_USER (Transact-SQL)
SESSION_USER, geçerli veritabanında etkin içerik kullanıcı adını döndürür.
SESSION_USER
Dönüş Türleri
nvarchar(128)
Remarks
Tüm standart işlev kullanmak veya ALTER tablo veya CREATE tablo deyimleri, VARSAYıLAN kısıtlamalar ile SESSION_USER kullanın.SESSION_USER içine eklenen bir tablo ne zaman, varsayılan değeri belirtildi.Bu işlev, bağımsız değişken alıyor.SESSION_USER sorgularda kullanılabilir.
SESSION_USER sonra bir bağlam değiştirme olarak adlandırılır, SESSION_USER bağlamı Kimliğine bürünülen kullanıcı adını döndürür.
Örnekler
C.Geçerli oturum kullanıcı adını döndürmek için SESSION_USER kullanma
Aþaðýdaki örnek, bir değişken olarak bildirir. nchar, geçerli değerini atar. SESSION_USER Bu bir deðiþkene ve sonra da bir metin açıklaması değişkenle yazdırır.
DECLARE @session_usr nchar(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Bu olduğunda, kullanıcı oturum sonucudur Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
b.DEFAULT kısıtlamalarıyla SESSION_USER kullanma
Aşağıdaki örnek, kullanan bir tablo oluşturur. SESSION_USER gibi bir DEFAULT kısıtlama için bir sevk irsaliyesi, alış irsaliyesi kaydeden kişinin adı.
USE AdventureWorks
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
Tabloya eklenen kayıtlar geçerli kullanıcının kullanıcı adı ile damgalı.Bu örnekte, Wanida, Sylvester, ve Alejandro Alış irsaliyesi, sevk irsaliyelerini doğrulayın. Bu kullanıcı bağlamı kullanarak geçiş yaparak Öykünülen 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
Tüm bilgileri aşağıdaki sorgu seçer deliveries3 Tablo.
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
Here is the result set.
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)