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

Troubleshooting Guide: SQL Server Error 506 – Invalid Escape Character

Why This Error Happens

This error occurs when a LIKE predicate in a T-SQL query specifies an ESCAPE clause with a character string that is not exactly one character long, or the escape character is used incorrectly relative to the pattern being matched. SQL Server 2025’s query parser strictly validates that the ESCAPE value is a single character with no ambiguous escaping logic (e.g., escaping a wildcard that isn’t adjacent to it). This is typically caused by a coding error in application-generated SQL, dynamic SQL construction, or an ORM (like Entity Framework) improperly formatting a parameterized LIKE clause.

Step-by-Step Resolution Guide

Step 1: Identify the Offending Query

  • Enable SQL Server Profiler or Extended Events on the instance to capture the exact statement raising Error 506.
  • Filter on Error Number = 506 under the Errors and Warnings event category.
  • Check the SQL Server Error Log at C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG for the raw statement text if Profiler isn’t available.

Step 2: Correct the ESCAPE Clause Syntax

  • Verify the ESCAPE character is a single character, not a multi-character string (e.g., use ESCAPE '\' not ESCAPE '\\').
  • Ensure the escape character actually precedes a wildcard (%, _, or [) in the pattern string; using it before a normal character throws Error 506.
  • Example of a corrected query:
SELECT * FROM Products
WHERE ProductCode LIKE '%50\%%' ESCAPE '\'

Step 3: Audit Application/ORM-Generated SQL

  • If using Entity Framework Core or Dapper, inspect how Contains(), StartsWith(), or LIKE mappings are translated—some versions incorrectly double-escape special characters.
  • Check middleware or API layers that dynamically build SQL strings from user input; sanitize wildcard characters before injecting them into the pattern.
  • Update to the latest EF Core/ODBC/OLE DB driver patch compatible with SQL Server 2025, as older drivers may mishandle escape sequences.

Step 4: Test in Isolation

  • Run the corrected query directly in SQL Server Management Studio (SSMS) 21 or Azure Data Studio against a test database.
  • Confirm no Error 506 is thrown and that results match expected filtering behavior.

Alternative or Verification Steps

  • Re-run the original failing report/application transaction and confirm the query executes without Error 506 in the SQL Server Error Log.
  • As an alternative, avoid ESCAPE entirely by using CHARINDEX or PATINDEX for simple substring matches if escape logic continues to cause issues in dynamic SQL scenarios.