SQL Server處理損壞的表
阿新 • • 發佈:2019-01-24
症狀:無法備份。
在 drop table 時報錯:
Location: AllocPageRef.cpp:62
Expression: aid == id
SPID: 71
Process ID: 4388 (這個是sqlserver 的程序)
訊息 3624,級別 20,狀態 1,第 1 行
系統斷定檢查已失敗。有關詳細資訊,請檢視 SQL Server 錯誤日誌
訊息 0,級別 20,狀態 0,第 0 行
當前命令發生了嚴重錯誤。應放棄任何可能產生的結果。
處理手段:
--1. 看下到底有哪些錯誤資訊, 具體是哪些表有問題, 記錄下來 EXEC xp_readerrorlog --2. 試著修復表 -- 我用的是 db1 庫, 具體的庫名、表名你要替換 USE [master] GO ALTER DATABASE [db1] SET SINGLE_USER WITH NO_WAIT GO USE db1 GO DBCC CHECKTABLE('[dbo].[t]',REPAIR_ALLOW_DATA_LOSS); GO ALTER DATABASE [db1] SET MULTI_USER WITH NO_WAIT GO
無效後試著禁用或刪除相關的表的索引, 再修復, 成功。