SQL Server - Max columns per primary key

SQL Server - Max columns per primary key

The maximum limit for primary key column list is 16.
  1. CREATE DATABASE db_MaxColumnPer  
  2. Go  
  3.   
  4. USE [db_MaxColumnPer]  
/*=================================
Create 16 columns per primary key
===================================*/
  1. CREATE TABLE MaxColumnPerPrimaryKey16(  
  2. [ID1] [int],  
  3. [ID2] [int],  
  4. [ID3] [int],  
  5. [ID4] [int],  
  6. [ID5] [int],  
  7. [ID6] [int],  
  8. [ID7] [int],  
  9. [ID8] [int],  
  10. [ID9] [int],  
  11. [ID10] [int],  
  12. [ID11] [int],  
  13. [ID12] [int],  
  14. [ID13] [int],  
  15. [ID14] [int],  
  16. [ID15] [int],  
  17. [ID16] [int],  
  18. [ID17] [int],  
  19. [ID18] [int]   
  20. CONSTRAINT PK_MaxColumnPerPrimaryKey   
  21. PRIMARY KEY(ID1,ID2,ID3,ID4,ID5,ID6,ID7,ID8,ID9,ID10,ID11,ID12,ID13,ID14,ID15,ID16)   
  22. )   
  23. GO  
Result window:
  1. Command(s) completed successfully.  
We can create one primary key for 1-16 columns in a table.

If we create a primary key more than 16 columns in a table SQL server returns error.

/*=================================
Create 17 or more columns per primary key
Following error will be occur
===================================*/
  1. CREATE TABLE MaxColumnPerPrimaryKey17(  
  2. [ID1] [int],  
  3. [ID2] [int],  
  4. [ID3] [int],  
  5. [ID4] [int],  
  6. [ID5] [int],  
  7. [ID6] [int],  
  8. [ID7] [int],  
  9. [ID8] [int],  
  10. [ID9] [int],  
  11. [ID10] [int],  
  12. [ID11] [int],  
  13. [ID12] [int],  
  14. [ID13] [int],  
  15. [ID14] [int],  
  16. [ID15] [int],  
  17. [ID16] [int],  
  18. [ID17] [int],  
  19. [ID18] [int]   
  20. CONSTRAINT PK_MaxColumnPerPrimaryKey   
  21. PRIMARY KEY (ID1,ID2,ID3,ID4,ID5,ID6,ID7,ID8,ID9,ID10,ID11,ID12,ID13,ID14,ID15,ID16,ID17)   
  22. )  
  23. GO  
Error:
  1. Msg 1904, Level 16, State 1, Line 30  
  2. The index '' on table 'MaxColumnPerPrimaryKey14' has 17 columns in the key list. The maximum limit for index key column list is 16.  
  3. Msg 1750, Level 16, State 0, Line 30  
  4. Could not create constraint or index. See previous errors.  
Summary
 
In this blog we have seen that an error occurs when Primary key exceeding its limit in SQL-server. 
Next Recommended Reading Get Table Primary Key Column In SQL