Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Tillåter att ett systemtillhandahållet värde för databasanvändarnamnet för den aktuella användaren kan infogas i en tabell när inget standardvärde är specificerat.
Transact-SQL syntaxkonventioner
Syntax
USER
Returtyper
nvarchar(128)
Anmärkningar
USER tillhandahåller samma funktionalitet som USER_NAME systemfunktionen.
Använd USER med DEFAULT begränsningar i antingen CREATE TABLE eller-satserna ALTER TABLE , eller använd som vilken standardfunktion som helst.
USER Returnerar alltid namnet på den aktuella kontexten. När den anropas efter ett EXECUTE AS påstående återvänder namnet USER på den imiterade kontexten.
Om en Windows-principal får tillgång till databasen genom medlemskap i en grupp, USER returnerar namnet på Windows-principalen istället för gruppens namn.
Examples
A. Använder USER för att returnera databasanvändarnamnet
Följande exempel deklarerar en variabel som char, tilldelar den det aktuella värdet av USER och skriver sedan ut variabeln med en textbeskrivning.
DECLARE @usr CHAR(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO
Här är resultatet.
-----------------------------------------------------------------------
The current user's database username is: dbo
(1 row(s) affected)
B. Användning USER med DEFAULT restriktioner
Följande exempel skapar en tabell genom att använda USER som DEFAULT begränsning för säljaren i en försäljningsrad.
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
Detta är frågan för att välja all information från inventory22 tabellen:
SELECT * FROM inventory22 ORDER BY part_id;
GO
Här är resultatmängden (notera entry-person värdet):
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. Använda USER i kombination med EXECUTE AS
Följande exempel illustrerar beteendet när USER det anropas i en imiterad session.
SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO
Här är resultatet.
DBO
Mario
DBO
Se även
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
Säkerhetsfunktioner (Transact-SQL)
SESSION_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
USER_NAME (Transact-SQL)