使用SYSTEM_USER作为表值函数的参数

时间:2012-02-17 18:24:20

标签: sql sql-server-2005 user-defined-functions

我创建了一个表值函数:

CREATE FUNCTION TestFunction
(   
    @username VARCHAR(80)
)
RETURNS TABLE 
AS
RETURN 
(
    SELECT 0 AS TestValue
)

然后尝试将其称为:

SELECT TestValue
FROM dbo.TestFunction(SYSTEM_USER)

但得到错误:

关键字“SYSTEM_USER”附近的语法不正确

我甚至尝试将其作为一个非内联的表值函数,但我得到了同样的错误。

我错过了什么吗?为什么我会收到此错误?

1 个答案:

答案 0 :(得分:3)

在我的2k8服务器上,我只能通过SQL Server 2000(80)兼容级别设置重现,检查2005数据库的级别。

同时你可以;

declare @su varchar(30) = SYSTEM_USER
select * from dbo.TestFunction(@su)