免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3498 | 回复: 2
打印 上一主题 下一主题

请问存储过程涉及到跨库操作需要注意什么问题呢?(db异常重启出现的问题) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-31 09:54 |只看该作者 |倒序浏览
维护一个业务发现其中有个存储过程是涉及到跨库操作,就是把数据查到了另外一个数据库(例如.dbname=sms)的表里面,之前由于数据库服务器异常重启导致表发生identity字段跳跃,之后把相关的表重建并恢复数据;但是之后这个业务就不正常了,数据不能插入到另外一个数据库sms里面,检查了很久发现才发现重建这个存储过程之后就恢复正常了,数据也能插入到sms里面了。
想问两个问题:
1、为何这个存储过程必须要重建呢?是否和跨库操作有关系?
2、编写存储过程跨库操作有什么注意事项或者如何做才更优化?

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
2 [报告]
发表于 2009-12-31 12:42 |只看该作者
我猜想应该和identit字段有关系吧,本地机器上不能获取远程identit最后的结果值,导致插入的值比这个小,造成不能插入数据,重新编译之后正常。
不过这种处理方法似乎有点风险。以后可能还会出现这样的问题。

论坛徽章:
0
3 [报告]
发表于 2009-12-31 13:38 |只看该作者
是同一台机器,只是建了A&B两个数据库。
我猜测是不是由于A库重建了表之后,表的id变化了,但是由于是跨库操作,存储过程是预编译的,所以在B库的存储过程必须要重新编译才可以?(不过好像又说不通,表的信息应该是记录在master库里面的)

[ 本帖最后由 sean_server 于 2009-12-31 13:40 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP