USER_ID (Transact-SQL)

Gibt die ID eines Datenbankbenutzers zurück.

Wichtiger HinweisWichtig

Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen DATABASE_PRINCIPAL_ID.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

USER_ID ( [ 'user' ] )

Argumente

  • 'user'
    Der zu verwendende Benutzername. user ist vom Datentyp nchar. Falls ein char-Wert angegeben wird, wird dieser implizit in nchar konvertiert. Die Klammern sind erforderlich.

Rückgabetypen

int

Hinweise

Wenn user nicht angegeben ist, wird der aktuelle Benutzer verwendet. Wenn USER_ID nach EXECUTE AS aufgerufen wird, gibt USER_ID die ID des angenommenen Kontexts zurück.

Wenn ein Windows-Prinzipal, der keinem spezifischen Datenbankbenutzer zugeordnet ist, über die Mitgliedschaft in einer Gruppe auf eine Datenbank zugreift, gibt USER_ID den Wert 0 (die ID von public) zurück. Falls ein solcher Prinzipal ein Objekt ohne Angabe eines Schemas erstellt, erstellt SQL Server einen impliziten Benutzer und ein Schema, das dem Windows-Prinzipal zugeordnet ist. Der in diesem Szenario erstellte Benutzer kann nicht zum Herstellen einer Verbindung mit der Datenbank verwendet werden. Bei Aufrufen von USER_ID durch einen Windows-Prinzipal, der einem impliziten Benutzer zugeordnet ist, wird die ID des impliziten Benutzers zurückgegeben.

USER_ID kann in einer Auswahlliste, in einer WHERE-Klausel und überall dort verwendet werden, wo ein Ausdruck zulässig ist. Weitere Informationen finden Sie unter Ausdrücke (Transact-SQL).

Beispiele

Im folgenden Beispiel wird die ID für den AdventureWorks-Benutzer Harold zurückgegeben.

USE AdventureWorks;
SELECT USER_ID('Harold');
GO