我正在使用SQL Server 2000,并且创建了如下所示的TVF:
CREATE FUNCTION [dbo].[fn_GetName]
(@ID NVARCHAR(MAX))
RETURNS TABLE
AS
RETURN
SELECT Name
FROM
(SELECT FirstName + ' ' + LastName Name
FROM UserProfile
WHERE 1 = 1
AND UserID = @ID
UNION
SELECT FirstName + ' ' + MiddleName + ' ' + LastName Name
FROM Student
WHERE 1 = 1
AND StudentID = @ID
AND Deleted IS NULL) query;
我正在尝试在此查询中使用它:
SELECT un.Name AS UserName
FROM UserProfile up (NOLOCK)
CROSS APPLY (SELECT Name FROM dbo.fn_GetName(up.UserID)) un
运行查询时出现此错误:
第15级州立19行第102条消息
'。'附近的语法不正确。
只要是重要的话,TVF的输入值就是GUID。有人可以让我知道我在做错什么,以及如何更改查询以使用创建的TVF吗?预先感谢。