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

Troubleshooting Guide: SQL Server Error 4192 – Collation Conflict

Why This Error Happens

Error 4192 occurs when a query or operation attempts to compare, join, or concatenate text data from columns, databases, or temporary objects that use different collations, and SQL Server cannot implicitly determine which collation rules to apply. This typically happens when the server-level collation (set during installation) differs from the database-level collation, or when a query references tempdb objects while the user database uses a non-default collation. It can also arise after a migration or restore where source and destination instances were configured with mismatched collation settings.

Step-by-Step Resolution Guide

Step 1: Identify the Conflicting Collations

  • Run the following query to check server, database, and column-level collations:
  SELECT SERVERPROPERTY('Collation') AS ServerCollation;
  SELECT name, collation_name FROM sys.databases;
  SELECT name, collation_name FROM sys.columns WHERE collation_name IS NOT NULL;
  • Note any discrepancies between the server default (often SQL_Latin1_General_CP1_CI_AS) and the database or column collations involved in the failing query.
  • Check the exact error message in SQL Server Management Studio (SSMS) or the Windows Event Viewer under Applications and Services Logs > MSSQLSERVER to identify which two collations are in conflict.

Step 2: Apply the COLLATE Clause to Force Resolution

  • Modify the offending query to explicitly cast the collation on one side of the comparison:
  SELECT * FROM TableA a
  JOIN TableB b
    ON a.ColumnX COLLATE DATABASE_DEFAULT = b.ColumnY COLLATE DATABASE_DEFAULT;
  • For temp table conflicts (a common cause since tempdb defaults to the server collation), explicitly define collation when creating the temp table:
  CREATE TABLE #TempTable (
      ColumnX NVARCHAR(100) COLLATE Latin1_General_CI_AS
  );
  • Save and re-run the query to confirm the error no longer appears.

Step 3: Align Database Collation with Server Collation (If Applicable)

  • If the conflict is systemic (affecting many queries), consider changing the database collation to match the server:
  ALTER DATABASE YourDatabaseName COLLATE SQL_Latin1_General_CP1_CI_AS;
  • Note: This only changes the default collation for new objects; existing columns must be altered individually:
  ALTER TABLE YourTable
  ALTER COLUMN YourColumn NVARCHAR(100) COLLATE SQL_Latin1_General_CP1_CI_AS;
  • Back up the database first using SSMS or BACKUP DATABASE before applying collation changes, as this is a schema-altering operation.

Step 4: Rebuild Instance-Level Collation (Last Resort)

  • If the server-level collation itself is incorrect for your organization’s needs, you may need to rebuild system databases using the setup.exe command-line utility with the /SQLCOLLATION switch:
  Setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=YourAdminAccount /SQLCOLLATION=Latin1_General_CI_AS
  • This action is destructive to master, model, msdb, and tempdb — ensure all user databases are backed up and scripts for logins/jobs are exported beforehand.

Alternative or Verification Steps

  • After applying fixes, re-run the original query or stored procedure that triggered Error 4192 and confirm it executes without the collation conflict message.
  • Use sys.fn_helpcollations() to list all valid collations on the instance and cross-reference them against your application’s expected locale settings to prevent recurrence.