ошибка при создании функции sql - PullRequest
2 голосов
/ 10 февраля 2010

Получение следующей ошибки при попытке создать эту функцию sql в SQL2k5. Есть идеи здесь? Он отлично работает вне функции.

ОБНОВЛЕНИЕ ЭТОЙ работы СЕЙЧАС, но я должен осознать, что это должно быть в форме представления, так как мне нужно выполнить внутреннее соединение с product_id, так что эта текущая форма будет работать только когда Я передаю идентификатор продукта. Есть мысли?

Сообщение 102, Уровень 15, Состояние 1, Список процедур, строка 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 ]

6 голосов
/ 10 февраля 2010

Несколько проблем:
- слишком много скобок
- оператор возврата должен быть перед "end"
- вам нужно установить переменную @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
0 голосов
/ 10 февраля 2010

У вас слишком много конечных скобок, и оператор RETURN должен находиться внутри блока BEGIN..END.

Изменить последние 3 строки с

)
end 
return @return

до:

return @return
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...