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

Troubleshooting Guide: SQL Server Error 2703 – Duplicate Partition Column Names

Why This Error Happens

Error 2703 occurs when a CREATE PARTITION FUNCTION or related partitioning statement references the same column name more than once in the partition columns list. This typically happens due to a copy-paste error in T-SQL scripts, auto-generated migration scripts from older SQL Server versions, or a schema comparison tool that duplicates column references during table re-creation. SQL Server 2025’s stricter metadata validation engine catches this duplication during parsing, before the partition function is bound to the table, causing the statement to fail outright.

Step-by-Step Resolution Guide

Step 1: Identify the Offending T-SQL Statement

  • Open SQL Server Management Studio (SSMS) or Azure Data Studio and locate the exact script that threw Error 2703.
  • Check the SQL Server Error Log (Event Viewer > Applications and Services Logs > SQL Server on Windows Server 2025/Windows 11) to confirm the timestamp and session ID associated with the failure.
  • Note the column name mentioned in the %.*ls placeholder of the error message — this is the duplicated column.

Step 2: Review and Correct the Partition Function Definition

  • Open the script containing CREATE PARTITION FUNCTION or CREATE PARTITION SCHEME.
  • Inspect the RANGE (column1, column2, ...) clause for repeated column names, e.g.:
  CREATE PARTITION FUNCTION MyPF (int, int)
  AS RANGE LEFT FOR VALUES (10, 20);
  • Remove the duplicate column reference so each column appears only once in the list.
  • If using a multi-column partition function (new in SQL Server 2025), verify each column maps to a distinct table column via sys.partition_functions and sys.partition_parameters.

Step 3: Validate Underlying Table Schema

  • Run the following query to confirm there are no duplicate column definitions at the table level:
  SELECT name, COUNT(*) 
  FROM sys.columns 
  WHERE object_id = OBJECT_ID('YourTableName') 
  GROUP BY name 
  HAVING COUNT(*) > 1;
  • If duplicates exist at the table level (rare, but possible after a failed schema migration), drop and recreate the table with correct column definitions.

Step 4: Re-run the Partition Creation Script

  • Execute the corrected CREATE PARTITION FUNCTION and CREATE PARTITION SCHEME statements.
  • Confirm no errors are returned and the partition function compiles successfully.

Alternative or Verification Steps

  • Verify the fix by querying sys.partition_range_values and sys.partition_functions to confirm the partition function now lists unique columns only.
  • If the error persists despite a clean script, restart the SQL Server 2025 service (services.msc > SQL Server (MSSQLSERVER) > Restart) to clear any cached execution plans referencing the old, faulty definition.