2017-02-11 2 views
-1

SSMS продолжает давать мне ошибку системы:CREATE FUNCTION

Incorrect Syntax: CREATE FUNCTION must be the only statement in the batch

Я не знаю, что я делаю неправильно :(помогите пожалуйста

CREATE FUNCTION fx_avgVacationHrs 
    (@whatgender varchar(5)) 
RETURNS INT 
AS 
BEGIN 
    RETURN 
     (SELECT AVG(VacationHours) AS AvgVacationhrsbyGender 
     FROM HumanResources.Employee 
     WHERE Gender = @whatgender) 
END 

SELECT dbo.fx_avgVacationHrs('F') 
+3

Добавить 'GO' после' END'. –

+0

Я понял, что проблема возникла из-за того, что я помещал целую инструкцию select в переменную select вместо объявления переменной и затем запрашивал возврат этой переменной – Pabduab

ответ

0

мне интересно, есть ли какое-либо заявление перед созданным вами сценарием.

Вы можете попытаться поставить «;» перед заявлением CREATE FUNCTION? Если оно перестало жаловаться, это значит, что у вас было другое заявление перед этим разделом.

Пожалуйста, дайте нам знать.

0

SELECT * FROM HumanResources.Employee

CREATE FUNCTION fn_GetUserID

(@businessentityID целое) ВОЗВРАТ VARCHAR (30) КАК НАЧАТЬ
DECLARE @UserID VARCHAR (30) SET @UserID = (SELECT SUBSTRING (LoginID, CHARINDEX ('\', LoginID) +1, 10) FROM HumanResources.Employee WHERE BusinessEntityID = @businessentityID)

RETURN @UserID 

END

Смежные вопросы