【问题标题】:CREATE FUNCTION创建函数
【发布时间】:2017-02-11 17:51:15
【问题描述】:

SSMS 不断给我一个系统错误:

语法错误:CREATE FUNCTION 必须是批处理中的唯一语句

我不知道我做错了什么:(请帮忙

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')

【问题讨论】:

  • END之后添加GO
  • 我发现了问题......这是因为我将整个 select 语句放在 select 变量上,而不是声明一个变量然后要求返回该变量

标签: sql-server ssms-2012


【解决方案1】:

我想知道您发布的脚本之前是否有任何声明。

你能试着把“;”在 CREATE FUNCTION 语句之前?如果它停止抱怨,这意味着您在本节之前还有其他声明。

请告诉我们。

【讨论】:

    【解决方案2】:

    从 HumanResources.Employee 中选择*

    创建函数 fn_GetUserID

    (@businessentityID 整数) 返回 varchar(30) 作为 开始
    声明@UserID varchar(30) SET @UserID = (SELECT SUBSTRING(LoginID, CHARINDEX('\', LoginID)+1, 10) FROM HumanResources.Employee WHERE BusinessEntityID = @businessentityID)

        RETURN @UserID
    

    结束

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 2011-05-13
      • 2015-02-20
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多