Troubleshooting Guide: Error 448 – Invalid Collation ‘%.*ls’ in SQL Server 2025
Why This Error Happens
This error occurs when SQL Server encounters a collation name in a COLLATE clause, database creation script, or column definition that it does not recognize as valid. This is typically caused by a typo in the collation name, a reference to a legacy or deprecated collation not supported in SQL Server 2025, or a mismatch when restoring/migrating a database from a different server that used a custom or platform-specific collation. It can also occur if the Windows Server 2025 locale settings do not have the corresponding language pack installed, making Windows-based collations unavailable to the SQL Server instance.
Step-by-Step Resolution Guide
Step 1: Verify the Exact Collation Name
- Run the following query to list all valid collations supported by your SQL Server 2025 instance:
SELECT name FROM sys.fn_helpcollations();- Compare the collation string from your script/error message against this list character-by-character, checking for extra spaces, incorrect casing, or missing underscores.
Step 2: Check for Deprecated or Renamed Collations
- Cross-reference the collation name against Microsoft’s official “Collation and Unicode support” documentation for SQL Server 2025, as some legacy SQL collations (e.g., older
SQL_prefixed ones) have been phased out. - If migrating from an older instance (SQL Server 2012 or earlier), replace deprecated collations with their modern Windows equivalent (e.g., replace
SQL_Latin1_General_CP1_CI_ASwithLatin1_General_100_CI_AS_SC_UTF8if Unicode support is required).
Step 3: Validate Windows Server Locale and Language Pack Support
- Open Settings > Time & Language > Language & Region on Windows Server 2025 / Windows 11 and confirm the required language pack is installed if using a region-specific collation.
- Restart the SQL Server service via
services.mscor runnet stop MSSQLSERVER && net start MSSQLSERVERafter installing any missing language packs so SQL Server reloads the updated system locale data.
Step 4: Correct the Script or Connection String
- Locate the exact line in your T-SQL script, SSIS package, or application connection string invoking the invalid collation.
- Update the
COLLATEclause with the corrected, verified collation name from Step 1, for example: ALTER TABLE dbo.YourTable ALTER COLUMN YourColumn NVARCHAR(50) COLLATE Latin1_General_100_CI_AS_SC_UTF8;
Alternative or Verification Steps
- Re-run the original script or database restore operation; if Error 448 no longer appears, the collation reference is now valid.
- As an alternative, if you’re unsure of the correct value, remove the explicit
COLLATEclause entirely to let the column/database inherit the server or database default collation instead.