SQL 2000自定义函数调用GETDATE()报错
在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);
如果你把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()报错相关推荐
- 安装 SQL Sever 2000至最后步骤报错“安装程序配置服务器失败。 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息”
在安装 SQL Sever 2000至最后步骤报错"安装程序配置服务器失败. 参考服务器错误日志和 C: \Windows\sqltsp.log 了解更多信息" ,如 图: 解决方 ...
- SQL注入 1-3_基于post报错注入
** SQL注入 1-3_基于post报错注入 ** 一.概念 客户端提交参数基于post 1.基于post注入不会拼接到url 2.相对get提交参数更加安全 3.但是依然可以使用代理(中间人)截断 ...
- Swift5版本以上自定义回调函数报错
Swift5版本以上自定义回调函数报错 最新swift版本要求在回调函数前面加入@escaping 关键字,以前不写,默认加入,现在不行了 假设一个类写一个全局类方法,第一步写一个class ,代表类 ...
- 【MyBatis动态SQL批量修改数据出现报错问题】
MyBatis动态SQL批量修改数据出现报错问题 MyBatis动态SQL批量修改数据出现报错问题 问题描述 XML文件中的动态SQL 执行结果 测试执行 报错日志 解决 原数据库URL 修改后数据库 ...
- ibatis resultclass java.util.list_mybatis 动态sql返回一个List封装类报错求解决方法
报错信息: Exception in thread "main" org.apache.ibatis.reflection.ReflectionException: Error i ...
- sql注入进阶/user-agent/基于报错的注入/保姆级教程/一看就会/
刚刚写了cisp安全工程与运营,写的我头昏脑胀,迷迷糊糊,接下来开始sql注入第五章节,也是最后一种注入类型"基于报错的盲注"与sqlmap,下一章就开始刷题,争取今天把sql注入 ...
- PowerBuilder8.0和SQL Server2008稳定升级到PowerBuilder11.5和SQL Server2016源码无报错
客户是一家跨国企业,当前使用版本为PowerBuilder8.0,数据库使用的SQL Server2008.本次升级是要把老旧的PB升级到新的PowerBuilder11.5版本,数据库升级到SQL ...
- 墨者学院-SQL注入漏洞测试(报错盲注)
继续攻克SQL注入类题目啦!!!今天的题目环境提示比较明显,也是比较常见的一种SQL注入漏洞类型,继续储备知识,撸起袖子加油干!!! 附上题目链接:https://www.mozhe.cn/bug/d ...
- 使用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 ...
最新文章
- 2021年春季学期-信号与系统-第一次作业参考答案-第一题
- 台式计算机cpu扣不下去,如果台式机的CPU太高怎么办_计算机的基本知识_IT /计算机_信息...
- 自己实现spring核心功能 一
- 本地音频播放,使用AVFoundation.framework中的AVAudioPlayer来实现
- React Native App设置amp;Android版发布
- Day05 egrep正则表达式sed
- 学习sql注入:猜测数据库_学习SQL:删除和更新数据SQL最佳实践
- 梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图
- 把页面分成左右两个,如何实现在左侧点击,链接一个页面到右边的页面
- update-apt-xapian-index 意外关闭
- jQuery源码分析(一)
- 中值滤波器处理椒盐噪声
- 反向传播神经网络(Back propagation neural network ,BPNN)
- Python字符串逆序输出(六种方法)
- mpvue(4)主页面静态页面的完成
- Pycharm this applicatation failed to start because it could not find or laod the qt plaform plugin
- java筆試題,Java筆試題及答案
- Juniper路由器基本命令及中文解
- IDEA连接阿里云物联网平台获取设备上传数据
- 微信小程序——image图片自适应宽度比例显示的方法
热门文章
- python元组修改_python基础知识之元组
- html上传文件与后台处理,关于前端html图片和文件上传和后台接收方法
- java不会自动提示_eclispe中打点不会提示的解决方法,以及自动补全
- oracle asm clsecho,ASM磁盘组一点管理
- oracle乘法运算,oracle实现相乘话语
- LR12的log解释
- @RequestParam @PathVariable
- 使用Android Studio搭建Android集成开发环境
- MDT2008部署之三LTI部署之二
- linux基础(day19)