我在伦敦的一所大学工作,由于某种原因,没有人在我们的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,工作同事(盯着远方)和前同事我仍然没有答案。这是怎么发生的?
答案 0 :(得分:0)
变化:
Select fea.[current_academic_year]
对此:
SELECT [fea].[current_academic_year]()
您缺少()
,请记住这是一个标量值函数,而不是列名。