首页 > 代码库 > SQLserver2008 当前命令发生了严重错误。应放弃任何可能产生的结果
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 当前命令发生了严重错误。应放弃任何可能产生的结果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。