sql函数创建错误

时间:2010-02-10 18:35:30

标签: sql sql-server-2005

尝试在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

2 个答案:

答案 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