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

Troubleshooting Guide: SQL Server Error 4134 – Computed Column Metadata Mismatch

Why This Error Happens

This error occurs when the metadata for a computed column stored on disk no longer matches the actual column definition recorded in the system catalog, typically due to an interrupted schema change, a failed ALTER TABLE operation, or disk-level corruption affecting page headers. It can also surface after an in-place upgrade (e.g., migrating to SQL Server 2025) where the computed column expression was altered or the collation/data type binding changed without a proper metadata refresh. In most cases, this is SQL Server’s built-in safeguard to prevent the engine from building or using a corrupted index on data that no longer aligns with its defined formula.

Step-by-Step Resolution Guide

Step 1: Run DBCC CHECKDB to Assess the Damage

  • Open SQL Server Management Studio (SSMS) or a query window connected to the affected instance.
  • Execute DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;
  • Review the output specifically for errors referencing the computed column and table named in the original Error 4134 message.
  • Note the table_id and column_id reported, as you will need them for validation in later steps.

Step 2: Identify and Script Out the Computed Column Definition

  • Query the system catalog to compare the stored definition against expectations: SELECT name, definition, is_persisted FROM sys.computed_columns WHERE object_id = OBJECT_ID('YourTableName');
  • Check if is_persisted matches what the application expects (persisted computed columns are physically stored and more prone to this mismatch).
  • Script the full table definition via SSMS (Right-click table > Script Table as > CREATE To) to preserve the current structure before making changes.

Step 3: Drop and Recreate the Computed Column

  • Run ALTER TABLE YourTableName DROP COLUMN YourComputedColumnName;
  • Re-add the column using the original (or corrected) expression: ALTER TABLE YourTableName ADD YourComputedColumnName AS (YourExpression) PERSISTED;
  • If the column was indexed, rebuild the index using CREATE INDEX IX_YourIndex ON YourTableName(YourComputedColumnName);

Step 4: Restore from Backup if Corruption Persists

  • If DBCC CHECKDB reports allocation or page-level corruption (not just metadata mismatch), isolate the affected table and restore it from the most recent clean full backup.
  • On Windows Server 2025, verify backup file integrity at C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Backup\ before restoring.
  • Use RESTORE DATABASE YourDatabaseName FROM DISK = 'BackupPath' WITH REPLACE, RECOVERY; only after confirming the backup predates the corruption event.

Step 5: Update Statistics and Rebuild Indexes

  • After recreating the column, run UPDATE STATISTICS YourTableName WITH FULLSCAN;
  • Rebuild all indexes on the table using ALTER INDEX ALL ON YourTableName REBUILD;
  • This ensures the query optimizer and storage engine are fully synchronized with the new metadata.

Alternative or Verification Steps

  • Re-run DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS; after completing the steps above — a clean result with zero allocation or consistency errors confirms the fix.
  • If the error reappears intermittently, check the Windows Event Viewer (Windows Logs > Application) for underlying disk I/O warnings (Event ID 129 or 153), as recurring metadata corruption is often a symptom of failing storage hardware rather than a SQL Server bug.