问题描述:
执行存储过程报错,如下:
服务器:消息7102,级别20,状态7,过程 P_TJXSZL,行139
SQLSERVER 内部错误。文本管理器无法继续执行当前语句。
连接中断
问题跟踪:
首先,根据报错的行数定位存储过程中的语句,并把语句单独摘出来执行,如果执行通过,则表示问题不在这里,继续下一次的跟踪;
然后,对该存储过程进行调试;调试后发现过程还未执行就报错了。这说明在调用过程开始的地方就有问题;
然后,从头对存储过程中的语句逐句执行,看是哪句出错。也可以分段批量执行语句,直到找出报错的语句;
最后,分析此语句,定位原因。
原因分析:
TR_FDZDMXK表损坏,需重建,但是删除此表时提示如下信息:(使用修复表语句不管用,原因待查。。)
服务器: 消息 7105,级别 22,状态 3,行 1text、ntext 或 image 节点的页 (1:117376),槽 0 不存在。
连接中断
临时解决方法:
前提:数据库已做好备份。打开查询分析器,执行以下语句如下:
步骤1、将损坏的名进行重命名
EXEC SP_RENAME 'TR_FDZDMXK','TR_FDZDMXK_BAK'
步骤2、删除系统表中保存的损坏的表约束与主键
EXEC SP_RENAME 'TR_FDZDMXK','TR_FDZDMXK_BAK'GODELETE FROM SYSOBJECTS WHERE NAME LIKE '%DF__TR_FDZDMX%' OR NAME LIKE '%PK_TR_FDZDMXK%'
步骤3、在查询分析器中,找到相应的数据库下的此表,并生成创建(CREATE)表的语句。
步骤4、执行创建表的语句。