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

相关问题