尝试在SQL2k5中创建此sql函数时出现以下错误。这里有什么想法?它在功能之外运行良好。
现在更新这项工作,但我必须认识到这需要以视图的形式存在,因为我需要在product_id上进行内部联接,所以这个当前的表单只有在我工作时才有效我正在传递产品ID。有什么想法吗?
消息102,级别15,状态1,程序getoptionlist,第13行 ')'附近的语法不正确。
CREATE FUNCTION dbo.getoptionlist
(@ProductID as int)
RETURNs varchar(101)
AS
BEGIN
declare @Return varchar(101)
SELECT SUBSTRING(
(SELECT ',' + s.Name + '~0'
FROM vOptions_details s
where product_id=@ProductID
ORDER BY s.Name
FOR XML PATH('')),2,200000)
)
end
return @return
答案 0 :(得分:6)
一些问题:
- 一个太多的括号
- 退货声明应在“结束”之前
- 你需要设置@return变量
CREATE FUNCTION dbo.getoptionlist
(@ProductID as int)
RETURNs varchar(101)
AS
BEGIN
declare @Return varchar(101)
SELECT @return = SUBSTRING(
(SELECT ',' + s.Name + '~0'
FROM vOptions_details s
where product_id=@ProductID
ORDER BY s.Name
FOR XML PATH('')),2,200000)
return @return
end
答案 1 :(得分:0)
你有一个太多的末端括号,RETURN语句需要在BEGIN..END块内。
更改
中的最后3行)
end
return @return
为:
return @return
end