How to fix Error 8967 on Windows Server 2025 / Windows 11

Troubleshooting Guide: DBCC Error 8967 in SQL Server 2025

Why This Error Happens

Error 8967 is a generic internal error raised by DBCC (Database Console Commands) when it encounters an unexpected condition it cannot classify under a more specific error code. This typically stems from physical database corruption, corrupted system catalog metadata, insufficient memory/worker thread starvation during the consistency check, or an incompatibility between the DBCC engine and a severely damaged index/allocation structure. In most cases, this error points to an underlying data integrity issue rather than a configuration mistake.

Step-by-Step Resolution Guide

Step 1: Verify SQL Server Error Logs for Context

  • Open SQL Server Management Studio (SSMS) and connect to the instance.
  • Navigate to Management > SQL Server Logs and review the log entries surrounding the timestamp of Error 8967.
  • Alternatively, run the query: EXEC sp_readerrorlog 0, 1, 'DBCC';
  • Look for accompanying error codes (e.g., 605, 823, 824) which indicate the specific corrupted object or page.

Step 2: Check System Resources and Tempdb Health

  • DBCC CHECKDB uses tempdb heavily; insufficient space or I/O contention can trigger internal failures.
  • Verify tempdb file growth settings via: USE tempdb; EXEC sp_spaceused;
  • Ensure the drive hosting tempdb (commonly C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Data) has at least 20% free space.
  • Restart the SQL Server service via Services.msc on Windows Server 2025 if memory pressure is suspected.

Step 3: Run DBCC CHECKDB with Extended Diagnostics

  • Execute a targeted check without repair first to assess the damage: DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS, EXTENDED_LOGICAL_CHECKS;
  • If the command fails again with 8967, isolate the specific table using: DBCC CHECKTABLE ('SchemaName.TableName');
  • Review the output for the specific Page ID or Object ID causing the internal crash.

Step 4: Restore from a Known Good Backup

  • If corruption is confirmed and REPAIR_ALLOW_DATA_LOSS is not viable, restore the database from the last verified clean backup.
  • Use the restore path: RESTORE DATABASE [YourDatabaseName] FROM DISK = 'D:\Backups\YourDB.bak' WITH REPLACE, RECOVERY;
  • Ensure the Windows Server 2025 volume shadow copy service (VSS) is not interfering with the restore file lock.

Step 5: Update SQL Server 2025 Cumulative Updates

  • Verify your current build number via: SELECT @@VERSION;
  • Navigate to the Microsoft Update Catalog and install the latest Cumulative Update (CU) for SQL Server 2025, as early builds may contain specific bugs related to the DBCC engine’s internal error handling.
  • Reboot the Windows Server 2025 instance after patching to clear cached DLLs.

Alternative or Verification Steps

  • Verify the Fix: Re-run DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS; immediately after the restore or repair; a clean run with zero allocation or consistency errors confirms the fix was successful.
  • Alternative Solution: If the error persists on a specific table only, export the clean data to a new table using SELECT INTO, drop the corrupted original, and rename the new table to match the original schema.