本学年的SQL Server 2008功能

时间:2014-07-28 15:29:32

标签: sql-server-2008-r2

我在伦敦的一所大学工作,由于某种原因,没有人在我们的SQL Server 2008实例中添加了一个函数来调用当前学年。我以前在Oracle服务器上成功完成了这项工作,所以我想,它有多难,对吧?

只有在我自己尝试失败之后才意识到这并不像我想象的那么容易。

到目前为止我的代码:

USE [DashboardData]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [fea].[current_academic_year]
()
RETURNS int
AS
BEGIN

DECLARE @Result as int

IF Month(GETDATE())<8 
SET @Result= Year(GETDATE())-1 
ELSE 
SET @Result = Year(GETDATE())

RETURN @Result

END

现在,这对我来说看起来很简单 - 它可以编译。但是,当我在一个简单的查询中调用该函数时(在同一个数据库中):

Select fea.[current_academic_year]

我收到以下错误消息:

  


消息4104,16级,1号,1号线。多部分   无法绑定标识符“FEA.current_academic_year”。

在咨询谷歌之前和之后几乎没有使用过SQL Server,工作同事(盯着远方)和前同事我仍然没有答案。这是怎么发生的?

1 个答案:

答案 0 :(得分:0)

变化:

Select fea.[current_academic_year]

对此:

SELECT [fea].[current_academic_year]()

您缺少(),请记住这是一个标量值函数,而不是列名。