If I add or drop columns from a SQL Server table I presume I get page splits or gaps. Since the size of the row has changed.
When I use RedGate SQL Compare to create conversion scripts its strategy is to create a temporary table, copy all the data into that table, drop the old table, and then rename the temporary table.
I assume this cleans up the pages as all the rows were "perfectly" sequentially inserted.
I recently had a DBA tell me that this "copy and rename" approach is inefficient, expensive and unnecessary.
What are the merits of these two approaches?