SQLserver2008 当前命令发生了严重错误。应放弃任何可能产生的结果
Posted 秋秋哒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLserver2008 当前命令发生了严重错误。应放弃任何可能产生的结果相关的知识,希望对你有一定的参考价值。
开发同事说,某存储过程执行到这个PM_X表的时候,就会抛出“当前命令发生了严重错误。应放弃任何可能产生的结果”的错误;
登陆sqlserver数据库,先大概看了下这个表的行数和大小:
exec spaceused ‘PM_X‘,才几十万行,几百兆,不大,真心不大。
然后select * into #nb from PM_X,也直接报错,怀疑此表结构出现了错误,导致表无法全表扫描,因此需要修复它。
因为此系统数据库狠重要,而且其关联的业务很复杂,所以通过更改此服务器的IP 来限制与其联系的业务数据库联系,然后执行以下脚本:
use PM
declare @dbname varchar(255)
set @dbname=‘PM‘
exec sp_dboption @dbname,‘single user‘,‘true‘
dbcc checktable(‘PM_X‘,REPAIR_ALLOW_DATA_LOSS)
exec sp_dboption @dbname,‘single user‘,‘false‘
然后,等待片刻,执行成功后,再select * from PM_X时,无再报错,开发的存储过程也可以正常跑了。
猜测,这种表出现错误,感觉像是oracle的逻辑坏块,但是发现sqlserver 没有这种记载坏块的视图。
在运维界,有两种操作叫“大招”——重启服务器;更换IP
关于dbcc checktable参数涵义,请参见官方文档:https://msdn.microsoft.com/zh-cn/library/ms174338.aspx。
以上是关于SQLserver2008 当前命令发生了严重错误。应放弃任何可能产生的结果的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 2008 上执行整个 .sql 文件
我安装SQLserver2012时出现了错误,想请你发一下这个文件
安装sql server 2005时提示“安装时发生严重错误”