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

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

--================================================================================================
-- Author : Kerry
-- CreateDate : 2011-03-23
-- Description : 根据规则自动生成流水号
--------------------------------------------------------------------------------------------------
-- UpdateDate :
--------------------------------------------------------------------------------------------------
CREATEPROCEDURE USP_RiminSampleNoGenerate
@TypeVARCHAR(10)
AS

SET NOCOUNT ON;

DECLARE@SampleNoASVARCHAR(30);
DECLARE@DateASVARCHAR(8);
DECLARE@SerialNumberASVARCHAR(3)

BEGIN

SELECT@Date=CONVERT(VARCHAR(18),GETDATE(), 112);

    --业务规则处理
END 
GO

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

无效。

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

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

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

--==============================================================================================
-- Author : Kerry
-- CreateDate : 2011-03-23
-- Description : 根据规则自动生成流水号
------------------------------------------------------------------------------------------------
-- UpdateDate :
------------------------------------------------------------------------------------------------
CREATEFUNCTION[dbo].[FUN_GenerateRaminiSampleNo](@TypeVARCHAR(10), @DateTimeDATETIME)
RETURNSVARCHAR(30)
AS
BEGIN

DECLARE@SampleNoVARCHAR(30);
DECLARE@DateVARCHAR(8);
DECLARE@SerialNumberVARCHAR(3);

SELECT@Date=CONVERT(VARCHAR(8),GETDATE(), 112); --编译出错
--SELECT @Date = CONVERT(VARCHAR(8),dbo.GETDATE(), 112); --调用出错
--SELECT @Date = CONVERT(VARCHAR(8), @DateTime, 112);
--业务规则
END
GO

转载于:https://www.cnblogs.com/kerrycode/archive/2011/03/23/1993149.html

SQL 2000自定义函数调用GETDATE()报错相关推荐

  1. 安装 SQL Sever 2000至最后步骤报错“安装程序配置服务器失败。 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息”

    在安装 SQL Sever 2000至最后步骤报错"安装程序配置服务器失败. 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息" ,如 图: 解决方 ...

  2. SQL注入 1-3_基于post报错注入

    ** SQL注入 1-3_基于post报错注入 ** 一.概念 客户端提交参数基于post 1.基于post注入不会拼接到url 2.相对get提交参数更加安全 3.但是依然可以使用代理(中间人)截断 ...

  3. Swift5版本以上自定义回调函数报错

    Swift5版本以上自定义回调函数报错 最新swift版本要求在回调函数前面加入@escaping 关键字,以前不写,默认加入,现在不行了 假设一个类写一个全局类方法,第一步写一个class ,代表类 ...

  4. 【MyBatis动态SQL批量修改数据出现报错问题】

    MyBatis动态SQL批量修改数据出现报错问题 MyBatis动态SQL批量修改数据出现报错问题 问题描述 XML文件中的动态SQL 执行结果 测试执行 报错日志 解决 原数据库URL 修改后数据库 ...

  5. ibatis resultclass java.util.list_mybatis 动态sql返回一个List封装类报错求解决方法

    报错信息: Exception in thread "main" org.apache.ibatis.reflection.ReflectionException: Error i ...

  6. sql注入进阶/user-agent/基于报错的注入/保姆级教程/一看就会/

    刚刚写了cisp安全工程与运营,写的我头昏脑胀,迷迷糊糊,接下来开始sql注入第五章节,也是最后一种注入类型"基于报错的盲注"与sqlmap,下一章就开始刷题,争取今天把sql注入 ...

  7. PowerBuilder8.0和SQL Server2008稳定升级到PowerBuilder11.5和SQL Server2016源码无报错

    客户是一家跨国企业,当前使用版本为PowerBuilder8.0,数据库使用的SQL Server2008.本次升级是要把老旧的PB升级到新的PowerBuilder11.5版本,数据库升级到SQL ...

  8. 墨者学院-SQL注入漏洞测试(报错盲注)

    继续攻克SQL注入类题目啦!!!今天的题目环境提示比较明显,也是比较常见的一种SQL注入漏洞类型,继续储备知识,撸起袖子加油干!!! 附上题目链接:https://www.mozhe.cn/bug/d ...

  9. 使用DataGrip编写SQL语句时出现此报错:“ Incorrect string value: ‘\xE7\x94\xB7‘ for column ‘xx‘ at row x”

    使用DataGrip编写SQL语句时出现以下错误: Incorrect string value(字符串值不正确): '\xE7\x94\xB7' for column 'gender' at row ...

最新文章

  1. 2021年春季学期-信号与系统-第一次作业参考答案-第一题
  2. 台式计算机cpu扣不下去,如果台式机的CPU太高怎么办_计算机的基本知识_IT /计算机_信息...
  3. 自己实现spring核心功能 一
  4. 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
  5. React Native App设置amp;Android版发布
  6. Day05 egrep正则表达式sed
  7. 学习sql注入:猜测数据库_学习SQL:删除和更新数据SQL最佳实践
  8. 梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图
  9. 把页面分成左右两个,如何实现在左侧点击,链接一个页面到右边的页面
  10. update-apt-xapian-index 意外关闭
  11. jQuery源码分析(一)
  12. 中值滤波器处理椒盐噪声
  13. 反向传播神经网络(Back propagation neural network ,BPNN)
  14. Python字符串逆序输出(六种方法)
  15. mpvue(4)主页面静态页面的完成
  16. Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
  17. java筆試題,Java筆試題及答案
  18. Juniper路由器基本命令及中文解
  19. IDEA连接阿里云物联网平台获取设备上传数据
  20. 微信小程序——image图片自适应宽度比例显示的方法

热门文章

  1. python元组修改_python基础知识之元组
  2. html上传文件与后台处理,关于前端html图片和文件上传和后台接收方法
  3. java不会自动提示_eclispe中打点不会提示的解决方法,以及自动补全
  4. oracle asm clsecho,ASM磁盘组一点管理
  5. oracle乘法运算,oracle实现相乘话语
  6. LR12的log解释
  7. @RequestParam @PathVariable
  8. 使用Android Studio搭建Android集成开发环境
  9. MDT2008部署之三LTI部署之二
  10. linux基础(day19)