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

Troubleshooting Guide: Error 7144 – Cannot Update text/ntext/image Column Referenced by a Persisted or Indexed Computed Column

Why This Error Happens

Error 7144 occurs because SQL Server 2025 does not allow direct in-place updates to text, ntext, or image columns when those columns are referenced by a computed column that is either persisted or part of an index. This restriction exists because the engine cannot efficiently recalculate and re-index the dependent computed value using legacy large-object (LOB) update mechanisms like WRITETEXT or UPDATETEXT. Essentially, the old BLOB update APIs bypass the normal row-update pipeline that triggers computed-column recalculation, creating a data integrity conflict that SQL Server blocks outright.

Step-by-Step Resolution Guide

Step 1: Identify the Offending Column and Dependency

  • Run the following query to locate computed columns referencing legacy LOB types:
  SELECT c.name AS ComputedColumn, c.definition, t.name AS TableName
  FROM sys.computed_columns c
  JOIN sys.tables t ON c.object_id = t.object_id
  WHERE c.is_persisted = 1 OR c.object_id IN (
      SELECT object_id FROM sys.index_columns
  );
  • Confirm whether the base column is using text, ntext, or image (these are deprecated types as of SQL Server 2025).

Step 2: Migrate Deprecated LOB Data Types

  • Convert the text, ntext, or image column to the modern equivalent: varchar(max), nvarchar(max), or varbinary(max).
  • Use ALTER TABLE to perform the conversion:
  ALTER TABLE dbo.YourTable
  ALTER COLUMN YourColumn VARCHAR(MAX);
  • Ensure no active transactions or open connections are locking the table during this operation (check via sys.dm_tran_locks).

Step 3: Update Application Code to Use Standard UPDATE Statements

  • Replace any legacy WRITETEXT or UPDATETEXT T-SQL calls in stored procedures or application code with standard UPDATE statements, since (max) types support them natively.
  • Example replacement:
  UPDATE dbo.YourTable
  SET YourColumn = N'New Value'
  WHERE PrimaryKeyID = 1;

Step 4: Rebuild Affected Indexes and Computed Columns

  • If the computed column is persisted or indexed, drop and recreate the index after the data type conversion to ensure consistency:
  DROP INDEX IX_YourComputedColumn ON dbo.YourTable;
  CREATE INDEX IX_YourComputedColumn ON dbo.YourTable (YourComputedColumn);
  • Verify there are no orphaned statistics tied to the old column definition using sp_updatestats.

Step 5: Restart the SQL Server Service to Clear Cached Plans

  • On Windows Server 2025 / Windows 11, open Services.msc, locate SQL Server (MSSQLSERVER) (or your named instance), and restart it.
  • Alternatively, run from an elevated PowerShell prompt:
  Restart-Service -Name 'MSSQLSERVER' -Force
  • This clears any cached execution plans that may still reference the old LOB update methods.

Alternative or Verification Steps

  • To verify the fix, attempt the original UPDATE statement again on the table — it should complete without triggering Error 7144.
  • If the error persists, check for additional legacy references in linked views, triggers, or replication articles that may still invoke WRITETEXT/UPDATETEXT against the converted column.