USER (Transact-SQL)
Ermöglicht das Einfügen eines vom System bereitgestellten Werts für den Datenbankbenutzernamen des aktuellen Benutzers in eine Tabelle, wenn kein Standardwert angegeben ist.
Syntax
USER
Rückgabetypen
char
Hinweise
USER bietet die gleiche Funktionalität wie die USER_NAME-Systemfunktion.
Verwenden Sie die USER-Funktion mit DEFAULT-Einschränkungen in der CREATE TABLE- oder ALTER TABLE-Anweisung oder als beliebige Standardfunktion.
USER gibt immer den Namen des aktuellen Kontextes zurück. Wenn USER nach einer EXECUTE AS-Anweisung aufgerufen wird, wird der Name des Kontextes zurückgegeben, dessen Identität angenommen wurde.
Greift ein Windows-Prinzipal über die Mitgliedschaft in einer Gruppe auf die Datenbank zu, gibt USER den Namen des Windows-Prinzipals statt des Namens der Gruppe zurück.
Beispiele
A. Verwenden von USER zum Zurückgeben des Datenbankbenutzernamens
Im folgenden Beispiel wird eine Variable als char-Datentyp deklariert, ihr wird der aktuelle Wert von USER zugewiesen, und anschließend wird die Variable mit einer Textbeschreibung gedruckt.
DECLARE @usr char(30)
SET @usr = user
SELECT 'The current user''s database username is: '+ @usr
GO
Dies ist das Resultset.
-----------------------------------------------------------------------
The current user's database username is: dbo
(1 row(s) affected)
B. Verwenden von USER mit DEFAULT-Einschränkungen
Im folgenden Beispiel wird eine Tabelle mit USER als DEFAULT-Einschränkung für den Verkäufer in einer Zeile mit Verkaufszahlen erstellt.
USE AdventureWorks;
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
Im Folgenden wird die Abfrage zur Auswahl aller Informationen aus der inventory22-Tabelle aufgeführt:
SELECT * FROM inventory22 ORDER BY part_id;
GO
Im Folgenden wird das Resultset aufgeführt (beachten Sie den entry-person-Wert):
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. Verwenden von USER in Kombination mit EXECUTE AS
Im folgenden Beispiel wird das Verhalten von USER bei Aufruf in einer Sitzung mit Identitätswechsel gezeigt.
SELECT USER;
GO
EXECUTE AS USER = 'Mario';
GO
SELECT USER;
GO
REVERT;
GO
SELECT USER;
GO
Dies ist das Resultset.
DBO
Mario
DBO
Siehe auch