2017-02-11 66 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

在'END'後面加'GO'。 –

+0

我想出了問題......這是因爲我在選擇變量上放置了一個完整的select語句,而不是聲明一個變量,然後要求返回該變量 – Pabduab

回答

0

如果有任何陳述我想知道

您可以嘗試在CREATE FUNCTION語句之前放置「;」嗎?如果它停止抱怨,這意味着您在此部分之前有其他語句

請讓我們知道。

0

SELECT * FROM HumanResources.Employee

CREATE FUNCTION fn_GetUserID

(@businessentityID INT) 返回值VARCHAR(30) AS BEGIN
DECLARE @UserID VARCHAR(30) SET @UserID = (SELECT SUBSTRING(LoginID,CHARINDEX('\',LoginID)+1,10) FROM HumanResources.Employee WHERE BusinessEntityID = @businessentityID)

RETURN @UserID 

END