{"id":150,"date":"2012-04-16T13:25:16","date_gmt":"2012-04-16T13:25:16","guid":{"rendered":"https:\/\/sqlserverlearner.azurewebsites.net\/2012\/04\/16\/what-are-the-maximum-number-of-columns-per-index-keyforeign-keyprimary-key-in-sql-server\/"},"modified":"2012-04-16T13:25:16","modified_gmt":"2012-04-16T13:25:16","slug":"what-are-the-maximum-number-of-columns-per-index-keyforeign-keyprimary-key-in-sql-server","status":"publish","type":"post","link":"https:\/\/sqlserverlearner.com\/2012\/04\/16\/what-are-the-maximum-number-of-columns-per-index-keyforeign-keyprimary-key-in-sql-server\/","title":{"rendered":"What are the maximum number of Columns per index key,foreign key,primary key in SQL Server"},"content":{"rendered":"

table.hovertable {
\nfont-family: verdana,arial,sans-serif;
\nfont-size:11px;
\ncolor:#333333;
\nborder-width: 1px;
\nborder-color: #999999;
\nborder-collapse: collapse;
\n}
\ntable.hovertable th {
\nbackground-color:#c3dde0;
\nborder-width: 1px;
\npadding: 8px;
\nborder-style: solid;
\nborder-color: #a9c6c9;
\n}
\ntable.hovertable tr {
\nbackground-color:#d4e3e5;
\n}
\ntable.hovertable td {
\nborder-width: 1px;
\npadding: 8px;
\nborder-style: solid;
\nborder-color: #a9c6c9;
\n}<\/p>\n

What are the maximum number of Columns per index key in SQL Server?<\/b>
\nSQL Server supports a maximum of 16 Columns per index key .
\n
\nWhat are the maximum number of Columns per foreign key in SQL Server?<\/b>
\nSQL Server supports a maximum of 16 Columns per foreign key .
\n
\nWhat are the maximum number of Columns per primary key in SQL Server?<\/b>
\nSQL Server supports a maximum of 16 Columns per primary key .
\n<\/p>\n\n\n\n\n\n\n
Max Capacity For<\/th>\nSQL Server 2012<\/th>\nSQL Server 2008 R2<\/th>\nSQL Server 2008<\/th>\nSQL Server 2005<\/th>\n<\/tr>\n
\nMaximum number of Columns per index key in SQL Server\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n<\/tr>\n
\nMaximum number of Columns per Foreign key in SQL Server\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n<\/tr>\n
\nMaximum number of Columns per Primary key in SQL Server\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n\n16 Columns\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n

<\/p>\n

Now if you want to test the maximum number of columns limitation for index key,primary key you can use the below test script.<\/p>\n

Test Script:
\n[sql]
\n–DROP TABLE TestMaximumColumnsPKTable
\nCREATE TABLE TestMaximumColumnsPKTable
\n(
\n COLUMN1 BIT NOT NULL,
\n COLUMN2 BIT NOT NULL,
\n COLUMN3 BIT NOT NULL,
\n COLUMN4 BIT NOT NULL,
\n COLUMN5 BIT NOT NULL,
\n COLUMN6 BIT NOT NULL,
\n COLUMN7 BIT NOT NULL,
\n COLUMN8 BIT NOT NULL,
\n COLUMN9 BIT NOT NULL,
\n COLUMN10 BIT NOT NULL,
\n COLUMN11 BIT NOT NULL,
\n COLUMN12 BIT NOT NULL,
\n COLUMN13 BIT NOT NULL,
\n COLUMN14 BIT NOT NULL,
\n COLUMN15 BIT NOT NULL,
\n COLUMN16 BIT NOT NULL,
\n COLUMN17 BIT NOT NULL PRIMARY KEY (COLUMN1, COLUMN2, COLUMN3, COLUMN4, COLUMN5, COLUMN6, COLUMN7, COLUMN8, COLUMN9, COLUMN10, COLUMN11, COLUMN12, COLUMN13, COLUMN14, COLUMN15, COLUMN16, COLUMN17)
\n);
\n[\/sql]<\/p>\n

When the script tries to create primary key with 17 columns you get below error:<\/p>\n


\nMsg 1904, Level 16, State 1, Line 1
\nThe index ” on table ‘TestMaximumColumnsPKTable’ has 17 column names in index key list. The maximum limit for index or statistics key column list is 16.
\nMsg 1750, Level 16, State 0, Line 1
\nCould not create constraint. See previous errors.
\n<\/font><\/p>\n

\nhttp:\/\/msdn.microsoft.com\/en-us\/library\/ms143432.aspx<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"

table.hovertable { font-family: verdana,arial,sans-serif; font-size:11px; color:#333333; border-width: 1px; border-color: #999999; border-collapse: collapse; } table.hovertable th { background-color:#c3dde0; border-width: 1px; padding: 8px; border-style: solid; border-color: #a9c6c9; } table.hovertable tr { background-color:#d4e3e5; } table.hovertable td { border-width: 1px; padding: 8px; border-style: solid; border-color: #a9c6c9; } What are the maximum number of Columns per index key in SQL…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499],"_links":{"self":[{"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/posts\/150"}],"collection":[{"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/comments?post=150"}],"version-history":[{"count":0,"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/posts\/150\/revisions"}],"wp:attachment":[{"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/media?parent=150"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/categories?post=150"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sqlserverlearner.com\/wp-json\/wp\/v2\/tags?post=150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}