Not
Å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
SESSION_USER returnerar användarnamnet för den aktuella kontexten i den aktuella databasen.
Transact-SQL syntaxkonventioner
Syntax
SESSION_USER
Returtyper
nvarchar(128)
Anmärkningar
Använd SESSION_USER med DEFAULT-begränsningar i antingen CREATE TABLE- eller ALTER TABLE-satserna, eller använd det som vilken standardfunktion som helst. SESSION_USER kan infogas i en tabell när inget standardvärde är specificerat. Den här funktionen tar inga argument. SESSION_USER kan användas i frågor.
Om SESSION_USER anropas efter ett kontextbyte kommer SESSION_USER att returnera användarnamnet för den imiterade kontexten.
Examples
A. Att använda SESSION_USER för att returnera användarnamnet för den aktuella sessionen
Följande exempel deklarerar en variabel som nchar, tilldelar det aktuella värdet av SESSION_USER till den variabeln och skriver sedan ut variabeln med en textbeskrivning.
DECLARE @session_usr NCHAR(30);
SET @session_usr = SESSION_USER;
SELECT 'This session''s current user is: '+ @session_usr;
GO
Detta är resultatsättet när sessionsanvändaren är Surya:
--------------------------------------------------------------
This session's current user is: Surya
(1 row(s) affected)
B. Att använda SESSION_USER med DEFAULT-begränsningar
Följande exempel skapar en tabell som använder SESSION_USER som DEFAULT begränsning namnet på den person som registrerar mottagandet av en leverans.
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
Poster som läggs till i tabellen stämplas med användarnamnet på den aktuella användaren. I detta exempel, Wanida, Sylvester, och Alejandro verifiera mottagandet av leveranser. Detta kan emuleras genom att byta användarkontext med hjälp av 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
Följande fråga väljer all information från tabellen deliveries3 .
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
Här är resultatet.
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)
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
C: Använda SESSION_USER för att returnera användarnamnet för den aktuella sessionen
Följande exempel returnerar sessionsanvändaren för den aktuella sessionen.
SELECT SESSION_USER;
Se även
ALTER TABLE (Transact-SQL)
SKAPA TABELL (Transact-SQL)
CURRENT_TIMESTAMP (Transact-SQL)
CURRENT_USER (Transact-SQL)
SYSTEM_USER (Transact-SQL)
Systemfunktioner (Transact-SQL)
ANVÄNDARE (Transact-SQL)
USER_NAME (Transact-SQL)