天天看点

SQL 2000自定义函数调用GETDATE()报错

在sql 2000数据库里的自定义函数中调用getdate()时,结果编译时报错,提示错误如下:invalid use of 'getdate' within a function

我给个测试例子如下所示,

如果你把getdate() 改成dbo.getdate()则编译不会出错,但是调用该函数时会报错,错误提示如下所示:对象名   'dbo.getdate '

无效。

这是因为不允许在用户定义函数主体中内置不确定函数(确定性函数和不确定性函数大家可以参考msdn文档介绍)。在sql 2000里面有

两种解决方案:把getdate()函数作为自定义函数的参数传入(如下所示)或定义获得当前时间的视图来解决这个问题。getdate()是不确

定函数。不过似乎在sql 2005里面,自定义函数可以调用函数getdate(),如下所示,而且编译、调用时都不会出错。