Megosztás a következőn keresztül:


FELHASZNÁLÓ (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Lehetővé teszi, hogy a jelenlegi felhasználó adatbázis felhasználónevének rendszer által biztosított értékét beillesztsenek egy táblába, ha nincs alapértelmezett érték.

Transact-SQL szintaxis konvenciók

Szemantika

USER  

Visszatérési típusok

nvarchar(128)

Megjegyzések

A USER ugyanazt a funkciót nyújtja, mint a USER_NAME rendszerfunkció.

Használd a USER DEFAULT korlátokkal a CREATE TABLE vagy ALTER TABLE utasításokban, vagy bármilyen szabványos függvényként használd.

A USER mindig a jelenlegi kontextus nevét adja vissza. Ha egy EXECUTE AS utasítás után hívják, a USER visszaadja az imidentált kontextus nevét.

Ha egy Windows vezető a csoporttagság révén fér hozzá az adatbázishoz, a USER a Windows fő nevét adja vissza a csoport neve helyett.

Példák

A. USER használata az adatbázis felhasználónév visszaadására

A következő példa egy változót úgy jelöl, mint char, hozzárendeli a USER aktuális értékét, majd kinyomtatja a változót szöveges leírással.

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

Itt van az eredmények összessége.

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

B. USER használata ALAPÉRTELMEZETT korlátokkal

A következő példa táblázatot hoz létre azáltal, hogy USER ezt az értékesítési sor értékesítőjének DEFAULT korlátjaként használja.

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  

Ez a lekérdezés, amellyel az összes információt kiválasztjuk a inventory22 táblázatból:

SELECT * FROM inventory22 ORDER BY part_id;  
GO  

Itt az eredményhalmaz (figyelje meg az entry-person értéket):

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. USER használata az EXECUTE AS kombinációval

A következő példa szemlélteti a viselkedést, USER amikor egy személyesen azonosított ülésen belül hívják.

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

Itt van az eredmények összessége.

DBO
Mario
DBO

Lásd még:

ALTERNATÍV TÁBLÁZAT (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Biztonsági funkciók (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)