Frage

Der folgende Auszug ist extrahiert aus diese Seite.

Current_user (transact-sql)

Gibt den Namen des aktuellen Benutzers zurück. Diese Funktion entspricht user_name ().

Wenn ich die beiden Funktionen mit den folgenden TSQL -Skripten ausführe (die fragwürdigen wurden kommentiert), bin ich verwirrt über die Aufrufsyntax. Ich möchte wissen, wann ich die Klammern verwenden muss und wann nicht. Vielen Dank!

SELECT CURRENT_USER
-- SELECT CURRENT_USER() -- Error!
SELECT USER_NAME()
-- SELECT USER_NAME -- Error!
War es hilfreich?

Lösung

Diejenigen ohne Klammern wie wie CURRENT_USER und CURRENT_TIMESTAMP gibt es da ANSI 92 Beachtung. Es gibt nur fünf solche Niladische Funktionen Und die Liste hat sich seit SQL Server 6.0 nicht geändert.

  1. Current_user
  2. AKTUELLER ZEITSTEMPEL
  3. Session_user
  4. System_user
  5. BENUTZER

Die meisten anderen SQL Server -Systemfunktionen erfordern Klammern.

Die Ausnahme davon sind diese Funktionen, die Früher wurde als globale Variablen bekannt das werden vorangestellt @@ wie zum Beispiel @@SPID.

Diese letzte Gruppe von Funktionen kann direkt in einer Parameterliste an eine gespeicherte Prozedur übergeben werden. Keiner der beiden anderen Varianten kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top