SQL Server Function Invocation Syntax Frage
-
16-10-2019 - |
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!
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.
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.