我创建了一个表值函数:
CREATE FUNCTION TestFunction
(
@username VARCHAR(80)
)
RETURNS TABLE
AS
RETURN
(
SELECT 0 AS TestValue
)
然后尝试将其称为:
SELECT TestValue
FROM dbo.TestFunction(SYSTEM_USER)
但得到错误:
关键字“SYSTEM_USER”附近的语法不正确
我甚至尝试将其作为一个非内联的表值函数,但我得到了同样的错误。
我错过了什么吗?为什么我会收到此错误?
答案 0 :(得分:3)
在我的2k8服务器上,我只能通过SQL Server 2000(80)兼容级别设置重现,检查2005数据库的级别。
同时你可以;
declare @su varchar(30) = SYSTEM_USER
select * from dbo.TestFunction(@su)