Вы просто должны быть в состоянии сделать:
alter table [db].[desktop-order-data] alter column ["Web ID"] int;
Для вашего кода вы хотите update
, а не insert
. Вам не нужен временный стол. Просто сделай:
update [db].[desktop-order-data]
set ["Web ID"] = cast(["Web ID"] as int);
Если это вызывает проблемы, найдите строки, которые не конвертируются. В SQL Server вы можете сделать:
select d.*
from [db].[desktop-order-data] d
where try_cast(["Web ID"] as int) is null and ["Web ID"] is not null;
Если у вас на самом деле двойные кавычки вокруг значений, то вам нужно удалить их. Я бы порекомендовал:
-- remove double quotes
update [db].[desktop-order-data] d
set ["Web ID"] = replace(["Web ID"], '"', '');
-- check that the resulting values are convertible
select *
from db].[desktop-order-data] d
where try_cast(["Web ID"] as int) is null and ["Web ID"] is not null;
-- if the above query returns no rows, then
update [db].[desktop-order-data]
set ["Web ID"] = cast(["Web ID"] as int);