“找不到存储过程’’ … 错误:2812”的解决方法
来源:互联网 发布:ubuntu 16 locale命令 编辑:程序博客网 时间:2024/06/02 13:13
先声明一下产生该错误的原因:
在SQL SERVER 2005中,有数据库DB1,在A服务器上。由于要更换服务器,要把数据库DB1迁移到B服务器上。而DB1是用于同步复制的。粗心的你没有把同步复制(发布和订阅)删掉,就直接把DB1.mdf和DB1_log.ldf两个文件到B服务器上附加。附加成功了,原来的程序都能连接上,你以为大功告成。但是,几天过后,当你想把服务器重新同步复制,以作实时备份时,你发现自己的倒霉时刻到了。SQL SERVER 2005 像病了一样,只提示:“找不到存储过程’’…错误:2812”。
如果你的经历与以下的不完全一致,那么这篇文章可能也值得你参考。
但如果你的经历恰好一样,而且你在Google或Baidu上苦寻答案而不觅,那么,这篇文章或者能帮你一把。
如果数据库迁移后,数据并没有更新过。那么你的想法是把这个该死的数据库分离,然后再重新把去掉同步复制的干净的数据库迁移过来。但是,如果你的新数据库已经投入生产,那么,请参考我的方法:
打开B服务器上的DB1数据库的系统表,你会发现有12个表在里面。这12个表就是因同步复制而产生的,包括:
表/视图有记录复制必须 Mspeer_lsns Mspeer_requestMspeer_response
Mspub_identity_range Sysarticlecolumns有是Sysarticles有是Sysarticlesupdates 是syspublications有是Sysreplservers有 Sysschemaarticles 是Syssubscriptions有是systranschemas sysextendedarticlesview 是
问题就出现在这里了。这12 个系统表和1个视图是因同步复制而生的,如果没有发生同步复制,他们是不会出现的。我们把mdf和ldf文件直接迁移过来,数据库里面的这些系统表和视图也随之而来了。
不能简单的把这12个系统表和1个视图删掉,这样同样不行。在经过了长时间的摸索后,我发现了问题的真正所在。
我们看一下系统表 sysreplservers的内容,有两列:
SrvnameSrvid旧服务区名称0
终于找到了问题所在了。我们把该表的记录删除。
然后随便发布一次。
再把该发布删除。
至此,该数据库中的陈旧同步复制信息已经去除,数据库重新变得洁净可爱。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rqzhong/archive/2008/11/19/3332673.aspx
- “找不到存储过程’’ … 错误:2812”的解决方法
- “找不到存储过程’’ … 错误:2812”的解决方法
- “找不到存储过程’’ … 错误:2812”的解决方法
- “找不到存储过程’’ … 错误:2812”的解决方法
- SQL2005在新建复制 找不到存储过程 错误:2812 的解决方法
- workflow中找不到存储过程的解决方法
- [解决办法]找不到存储过程'' 的错误
- 使用存储过程时一个错误的解决方法。
- 使用存储过程时一个错误的解决方法。
- 使用存储过程时一个错误的解决方法
- 关于sql2000在操作时找不到系统存储过程的解决方法
- 【同步复制常见错误处理3】找不到存储的过程 sp_MSins_tablename
- “System.MissingMethodException: 找不到方法” 错误的解决方法
- cxcore100.dll错误提示找不到的解决方法
- 找不到xxx.so.x错误的解决方法
- 找不到xxx.so.x错误的解决方法
- 找不到存储过程
- VS2010程序运行报“指定的存储区提供程序在配置中找不到,或者无效”错误的解决方法
- urlMappings (asp.net2.0 C#)
- innerText与innerHTML区别
- 20091103_language
- Silverlight3中的ToolTip
- 从SD卡启动wince(来自阿莫ARM论坛)
- “找不到存储过程’’ … 错误:2812”的解决方法
- 共享职业素养电子书(共27本)
- Domino域类型介绍
- C语言指针问题快速解惑
- 一天
- LOHAS宣言——“房子可以小,但要温暖!”
- web developer tips (58):在vs里导入导出每一个HTML的标记
- 11.03[转自:Jack @ CnBlogs]实现iFrame自适应高度,原来很简单!
- 当printf遇到了i++ 或++i