@umarfarukh I realise that your question seems to be "Why does alteration of this table work in SQL 2012 but not in later versions?" but I have a feeling that sooner or later you're going to have to address a more fundamental issue. You touch on it in this statement: *"...Plz do not ask why so much..."* The reality is that you have to address that very issue if you want something that is going to work efficiently and scale well into the future. SQL Server is a Relational Database Management System. It's exceedingly unlikely that the table you're working with is a well-designed, normalised relational table. You're asking SQL Server to do things it's not designed to do. As just one example, why do you need the last fifty or so columns to be nullable and precisely 500 characters in size. What would happen if they were say 490 or 510. Without seeing the underlying data, the number 500 just seems a bit arbitrary to me. One thing you might want to consider (bearing in mind that there will be about a million different improvements you can make once the nature of the data becomes apparent) is "vertical partitioning". If you can identify the most used, most important columns (they won't all be equally used and important) you might want to split them into one table for the commonly used important stuff and another table (with exactly the same pk) for the less used and less important data. That gets you over the 8060 "limitation" and you'll likely get much better performance too.