SQLServer在函数内不正确地使用了getdate  

熟能生巧,不用则生.有段时间不用SQLServer了,结果连函数的用法都忘了.

今天有段代码就是提示标题所写的错误,而我却不知道怎么错了.手写或者在存储过程中都对,偏偏就是下面的代码错

CREATE FUNCTION CloveTest()
RETURNS DATETIME
AS
BEGIN
   RETURN GETDATE() 
END
GO

我已经把能简化的都简化了,结果这样还出错.过了一会才猛然想起来 SQLServer中函数调用需要说明dbo权限,难道系统函数也需要?

事实证明,就是少了一个dbo.GETDATE(),喵了个咪~

其实呢,事情没有结束.因为这个函数调用的时候又出错了

对象名 'dbo.GETDATE' 无效。

偶滴神呐,咋回事?查了一下msdn,才知道是这么个景.

1.SQLServer2000以及之前的版本,不允许在函数中放置不确定函数.所以dbo.GETDATE()其实是按照自定义函数的调用格式处理的.

这样写虽然编译通过了,但是调用的时候会出错,没法用.

也就是说dbo.GETDATE()能通过编译,用不了;而GETDATE()通不过编译,理论上能用.一切都是幻觉…

2.SqlServer2005以上版本,支持自定义函数的系统函数调用,也就是说不存在本篇文章所说的一切内容.

以上,怨念~~~~

请订阅本站 RSS feed 订阅到信箱 ,欢迎 Donate 或者 上面的广告内容 支持三十岁

本文链接:SQLServer在函数内不正确地使用了getdate

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  • 通告关闭
  • 评论 (3)
  1. 好懒啊,多久没更新了~

  2. 内容分析的详细而专业,值得学习,谢谢

评论关闭