Не делай этого .Это сочетается с рекомендацией никогда не использовать SELECT *, и в этом случае, поскольку вы перечисляете все столбцы, почему это имеет значение для их внутреннего порядка?демо, которое не опускает стол.Однако столбцы необходимо отбрасывать, поскольку вы не можете вставить их посередине.
create table BOB(col1 int, colspace int, col2 int, col3 varchar(10))
insert BOB values (1,3, 2,'test')
;
alter table BOB add col2_copy int, col3_copy varchar(10), NewCol datetime
;
update BOB set col2_copy = col2, col3_copy = col3
;
alter table BOB drop column col2
alter table BOB drop column col3
;
alter table BOB add col2 int, col3 varchar(10)
;
update BOB set col2 = col2_copy, col3 = col3_copy
;
alter table BOB drop column col2_copy
alter table BOB drop column col3_copy
;
select * from BOB
Это становится значительно сложнее, если у вас есть ограничения и значения по умолчанию.