SQL Server 函数调用语法问题

Jus*_*ner 1 sql-server t-sql

以下摘录是从本页摘录。

CURRENT_USER (Transact-SQL)

返回当前用户的名称。此函数等效于 USER_NAME()。

当我使用以下 TSQL 脚本(有问题的脚本被注释)执行这两个函数时,我对调用语法感到困惑。我想知道何时使用括号,何时不使用。谢谢!

SELECT CURRENT_USER
-- SELECT CURRENT_USER() -- Error!
SELECT USER_NAME()
-- SELECT USER_NAME -- Error!
Run Code Online (Sandbox Code Playgroud)

Mar*_*ith 5

没有括号的那些,例如CURRENT_USERCURRENT_TIMESTAMP是为了ANSI 92遵守。只有五个这样的Niladic 函数,并且该列表自 SQL Server 6.0 以来没有改变。

  1. 当前用户
  2. CURRENT_TIMESTAMP
  3. SESSION_USER
  4. 系统用户
  5. 用户

大多数其他 SQL Server 系统函数都需要括号。

唯一的例外是那些功能使用被称为全局变量前缀为@@@@SPID

最后一组函数可以直接在参数列表中传递给存储过程。其他两种变体都不能。