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

Troubleshooting Guide: SQL Server Error 5045

Why This Error Happens

Error 5045 occurs when a script or application attempts to set a property (such as a filegroup, file, or database option) that has already been defined earlier in the same statement or batch. This typically results from duplicate syntax in a CREATE DATABASE, ALTER DATABASE, or CREATE/ALTER TABLE statement, often introduced by poorly generated scripts, copy-paste errors, or third-party migration tools. It can also surface after an in-place upgrade to SQL Server 2025 if legacy T-SQL scripts use deprecated syntax that now conflicts with newer property validation logic.

Step-by-Step Resolution Guide

Step 1: Identify the Conflicting Script or Statement

  • Open SQL Server Management Studio (SSMS) and locate the exact query that triggered Error 5045 in the SQL Server Error Log (C:\Program Files\Microsoft SQL Server\MSSQL17.MSSQLSERVER\MSSQL\Log\ERRORLOG).
  • Check the Activity Monitor or query history for the specific CREATE/ALTER statement referenced in the error message.
  • Note the specific property name mentioned in the '%ls' placeholder of the error text.

Step 2: Review and Clean the T-SQL Syntax

  • Search the script for duplicate clauses, such as two FILEGROWTH, MAXSIZE, or COLLATE definitions within the same ALTER DATABASE or CREATE TABLE block.
  • Remove the redundant property declaration, keeping only the first (or correct) instance.
  • If using a migration or deployment tool (e.g., SSDT, DACPAC), regenerate the script using the latest SQL Server 2025 compatible tooling to avoid legacy syntax duplication.

Step 3: Validate Database Compatibility Level

  • Run the following command to confirm the database is using a supported compatibility level for SQL Server 2025:
SELECT name, compatibility_level FROM sys.databases WHERE name = 'YourDatabaseName';
  • If the compatibility level is outdated (e.g., 130 or lower), update it to reduce legacy parser conflicts:
ALTER DATABASE YourDatabaseName SET COMPATIBILITY_LEVEL = 170;

Step 4: Re-run the Corrected Script

  • Execute the cleaned-up script in a non-production environment first.
  • Confirm that no other object-level scripts (triggers, stored procedures) reference the same duplicate property.
  • Check the Windows Event Viewer (Applications and Services Logs > MSSQLSERVER) for any residual warnings tied to Event ID 5045.

Alternative or Verification Steps

  • Verify the fix by re-executing the original failing script in SSMS and confirming it completes with “Command(s) completed successfully” with no Error 5045 in the output pane.
  • If the error persists, use sp_helpdb 'YourDatabaseName' to inspect current file and filegroup properties for hidden duplicates that may not be visible in the original script.