USER (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnalitik Platform Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

Varsayılan değer belirtilmediğinde, mevcut kullanıcının veritabanı kullanıcı adının sistem tarafından sağlanan bir değerin tabloya eklenmesine izin verir.

Transact-SQL söz dizimi kuralları

Sözdizimi

USER  

Dönüş Türleri

nvarchar(128)

Açıklamalar

USER USER_NAME sistem fonksiyonuyla aynı işlevselliği sağlar.

USER DEFAULT Kısıtlamalarla veya CREATE TABLE herhangi bir standart ALTER TABLE fonksiyon olarak kullanın.

USER her zaman mevcut bağlamın adını döndürür. Bir EXECUTE AS ifadeden sonra çağrıldığında, USER taklit edilen bağlamın adı döner.

Bir Windows yöneticisi bir grup üyeliği yoluyla veritabanına erişirse, USER grubun adı yerine Windows yöneticisinin adını döndürür.

Örnekler

A. Veritabanı kullanıcı adını döndürmek için kullanılıyor USER

Aşağıdaki örnek, bir değişkeni , charolarak bildirir, ona mevcut değeri USER atar ve ardından değişkeni metin açıklamasıyla yazdırır.

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

Sonuç kümesi aşağıdadır.

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

B. Kısıtlamalarla DEFAULT kullanım USER

Aşağıdaki örnek, satış satırının satış temsilcisi için bir kısıtlama olarak kullanılarak bir tablo USERDEFAULT oluşturur.

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  

Tablodan tüm bilgileri inventory22 seçmek için sorgu budur:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

İşte sonuç kümesi (değere entry-person dikkat edin):

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. Kombinasyon ile USEREXECUTE AS

Aşağıdaki örnek, taklit edilen bir oturum içinde çağrıldığında USER davranışı göstermektedir.

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

Sonuç kümesi aşağıdadır.

DBO
Mario
DBO

Ayrıca Bkz.

ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Güvenlik İşlevleri (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)