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

Troubleshooting Guide: Error 12349 — Operation Not Supported for Memory-Optimized Tables with Columnstore Index

Why This Error Happens

This error occurs because the operation you are attempting (such as an online index rebuild, certain DML batch operation, or a schema change) is not supported on memory-optimized tables that have a columnstore index applied to them in SQL Server 2025. This typically stems from a limitation in the Hekaton engine’s interaction with columnstore metadata, where certain T-SQL commands or maintenance tasks bypass the required in-memory OLTP compatibility checks. It can also be triggered by outdated database compatibility levels or attempting operations reserved for disk-based tables on memory-optimized structures.

Step-by-Step Resolution Guide

Step 1: Verify Database Compatibility Level

  • Open SQL Server Management Studio (SSMS) and connect to your SQL Server 2025 instance.
  • Run the following query to check the current compatibility level:
SELECT name, compatibility_level FROM sys.databases WHERE name = 'YourDatabaseName';
  • Ensure the compatibility level is set to 170 (SQL Server 2025) using:
ALTER DATABASE YourDatabaseName SET COMPATIBILITY_LEVEL = 170;

Step 2: Identify Unsupported Operations on the Table

  • Query the table definition to confirm it is memory-optimized with a columnstore index:
SELECT t.name AS TableName, i.type_desc AS IndexType
FROM sys.tables t
JOIN sys.indexes i ON t.object_id = i.object_id
WHERE t.is_memory_optimized = 1 AND i.type_desc LIKE '%COLUMNSTORE%';
  • Avoid running unsupported operations such as ALTER INDEX REBUILD directly on the columnstore index; instead, use supported maintenance paths like dropping and recreating the index.

Step 3: Drop and Recreate the Columnstore Index Correctly

  • Use the supported syntax to remove the index before attempting schema or maintenance changes:
DROP INDEX IF EXISTS YourColumnstoreIndexName ON dbo.YourTableName;
  • Recreate the index using the correct memory-optimized syntax:
CREATE COLUMNSTORE INDEX YourColumnstoreIndexName 
ON dbo.YourTableName;
  • Ensure no other sessions or applications are locking the table during this operation (check via sys.dm_tran_locks).

Step 4: Update SQL Server 2025 to the Latest Cumulative Update

  • Navigate to Control Panel > Programs > Programs and Features on Windows Server 2025 / Windows 11 to check the currently installed SQL Server build.
  • Download and install the latest Cumulative Update (CU) from the Microsoft Update Catalog, as early 2025 builds had known restrictions with columnstore indexes on memory-optimized tables that were patched in later releases.
  • Restart the SQL Server service via SQL Server Configuration Manager after the update completes.

Step 5: Review Application Code for Legacy Syntax

  • Audit stored procedures and ETL jobs for legacy T-SQL commands (e.g., TRUNCATE TABLE or MERGE statements) that may not be certified for use on memory-optimized columnstore tables.
  • Replace unsupported commands with natively compiled stored procedure logic where possible.

Alternative or Verification Steps

  • To verify the fix, re-run the original query or application transaction that triggered Error 12349; if successful, check the SQL Server Error Log (Management > SQL Server Logs in SSMS) to confirm no new 12349 entries appear.
  • If the error persists after patching, consider migrating the columnstore index to a standard disk-based table as a temporary workaround while Microsoft Support investigates further compatibility fixes for the specific build.