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。
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM