位置: 编程技术 - 正文

SQL SERVER修改函数名容易引发的问题分析(sqlserver修改值)

编辑:rootadmin

推荐整理分享SQL SERVER修改函数名容易引发的问题分析(sqlserver修改值),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql server的修改语句,sqlsever修改数据,sqlserver修改值,如何修改sql server表里面里的数据,sql修改函数,sql server 修改,sqlserver修改语句怎么写,sql修改函数,内容如对您有帮助,希望把文章链接给更多的朋友!

1. 问题

今天遇到一个奇怪的问题:使用sp_helptext XXX查询出来的函数定义名竟然跟函数名不同,而sp_helptext实际是查询sys.all_sql_modules这个系统视图的。直接查询这个视图的definition字段,发现跟sp_helptext是一样的。难道是系统视图也存在缓存之类的机制?或者是个BUG?对于第一个问题,当时情况紧急,没有时间去求证是否存在了。第二个问题,我想没什么可能,SQL SERVER发展到今天(SQL 正式版准备推出,我使用的环境则是SQL R2,打了SP3),已经是很成熟的一个系统,即使是出现BUG也不是我这种水平的人能发现的,肯定是哪我哪里弄错了。于是求助于数据库技术交流群,很快有大神回答了是改名的问题。我马上就想起这个函数在一个多星期前,因为测试的需要,通过SSMS改了原函数名,而SQL SERVER不会因为改名去更新sys.all_sql_modules视图的definition字段的!于是就造成了已经编译好的函数与sys.all_sql_modules系统视图的函数定义出现了不一致的情况。

2. 重视与分析问题

做一个测试来重现下问题。首先,新建一个简单的测试函数dbo.ufn_test_1。

code-1: 创建函数dbo.ufn_test_1

这时,使用sp_helptext和sys.all_sql_modules查询,一切正常。

code-2:查询函数dbo.ufn_test_1的定义

figure-1: 查询函数dbo.ufn_test_1的定义

SQL SERVER修改函数名容易引发的问题分析(sqlserver修改值)

在SSMS上直接改名为dbo.ufn_test_2。

figure-2: 修改函数名

再去查询函数dbo.ufn_test_2的定义。这样,就出现了已经编译好的函数跟在视图中的函数定义出现了不一致的情况!如果通过sp_helptext和sys.all_sql_modules查询出现的定义去更新生产服务器,就肯定会出现问题。

3. 解决与结论

解决方法也很简单,把这个函数重建即可。如果使用SSMS的右键修改(Modify)或生成相关脚本(Script Function as)的菜单,则不会出现以上的问题。同样的问题与解决方法,也适用于存储过程。

结论:

(1)尽量不要修改对象名,确实要修改的话,就重建吧。如果是表并且包含的大量数据要重建的话,就比较麻烦了,即使是修改表名不会出现像函数、存储过程的问题,但修改表名涉及应用程序等问题。

(2)尽量使用SSMS的右键菜单修改或生成对象的定义。但如果函数或存储过程太多,会觉得sp_helptext和sys.all_sql_modules会更方便些,查询出来的结果要认真核对下对象名是否一致即可。这里提一下,sp_helptext有些限制,可以参考SQL中print、sp_helptext的限制与扩展。

SQL中print、sp_helptext的限制与扩展 在SQL中,使用动态SQL是很常见的。有些复杂的计算,或是存储过程,代码很长,中间可能有多次执行SQL语句。而调试拼串的SQL语句却是件痛苦的事,很

SQLSERVER分页查询关于使用Top方式和row_number()解析函数的不同 临近春节,心早已飞了不在工作上了,下面小编给大家整理些数据库的几种分页查询。SqlSever之前版本:selecttop页大小*from表名whereidnotin(selecttop页大

SQL Server中NULL的正确使用与空间占用 我们常在SQLServer的使用或维护中遇上NULL,那么什么是NULL?如下是MSDN给出的一段简短描述(见NullValues):AvalueofNULLindicatesthatthevalueisunknown.AvalueofNULLisdiff

标签: sqlserver修改值

本文链接地址:https://www.jiuchutong.com/biancheng/312881.html 转载请保留说明!

上一篇:SqlServer Mysql数据库修改自增列的值及相应问题的解决方案(数据库my sql)

下一篇:SQL中print、sp_helptext的限制与扩展

  • 非营利组织支付给他人劳务费
  • 小规模入账的收入分录
  • 土地增值税清算方法与技巧
  • 人力资源公司代招的岗位可以去吗
  • 外包人员的工资是费用吗
  • 一般纳税人每个月几号报税
  • 商场交的质保金做什么会计科目?
  • 你如何界定成本与费用之间区别?
  • 基本养老保险覆盖人数
  • 利润表中企业所得税
  • 农牧业没有发票怎么办
  • 计划成本法如何计算材料成本差异率
  • 防暑降温费如何做账
  • 存货跌价准备转销
  • 餐厨垃圾处理有哪些设备
  • 复核未通过
  • 社保基数如何计算单位和个人承担多少
  • 简易计税的方式
  • 鸿蒙系统 3.0
  • centos apache配置文件
  • 应付账款讲解
  • 实例讲解php设计软件
  • 2023前端面试题百度云
  • 财税〔2017〕34号文件中提到的科技型中小企业是指哪种企业?
  • 日落之前是什么时辰
  • 施工单位老板
  • 镶嵌在巨石之间的英文
  • javaweb购物
  • vue el-tabs
  • 织梦数据库在哪
  • 2022最好用的港澳台电视直播
  • 运输途中发生的费用
  • ps里的钢笔工具
  • 差旅费报销有哪些
  • 已付款收到发票
  • 长期股权投资种类
  • 一般纳税人企业所得税怎么征收
  • 房租押金可以要回来吗
  • 对公账户里的钱怎么转出来合法
  • 金税四期上线后对个人的影响
  • 政府补助的内容
  • 火车票可以抵扣进项吗
  • 金税盘维护费应该计入什么科目
  • 企业清算是怎么做账的
  • 逾期交房违约金 已支付金额
  • 购买货物运输费计入什么科目
  • 运费少给怎么办
  • 用银行承兑汇票购买原材料会计分录
  • 债务重组的方式不包括债务转为资本
  • 应收账款周转率高说明
  • 幼儿园增值税优惠政策
  • 商标的使用权
  • 小规模纳税人公司注册条件
  • 公司向股东借款最新规定
  • 出口免税的税种包括
  • 委托加工产品送货合同
  • 拿支票取钱
  • 公司转让二手车需要缴纳什么税
  • 购进销售产品的会计分录
  • 企业无形资产入账标准
  • centos关闭kdump
  • os x10.10.4beta6下载地址 os x10.10.4beta6官方下载网址
  • win10右下角的图标点不开
  • win7系统笔记本怎么调节电脑亮度
  • win10系统应用更新
  • popupwindow底部弹出
  • org.cocos2d.straydiary
  • opengl绘制三维图形代码
  • 【学习ARToolkit小记之初】 ARToolkit在VS2010(Win7 64位)下的配置及第一个开发程序的编译与运行
  • 安卓安全警告怎么关闭
  • 好用的css
  • android圆形按钮
  • android开发工程师岗位说明
  • python自动化源码
  • 人事科负责人是否必须是党员?
  • 怎么查询开票信息呢
  • 税务局发票邮寄需要多久
  • 机构改革结束了吗
  • 表彰税务工作者们的活动策划
  • 浅谈企业所得税论文
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设