Sucede a veces que te has equivocado al hacer una tabla de la base de datos (mas de lo que me gustaría…)..
Y claro, una vez hecha ponerte a tumbar las constraints que dependen y volver a generar los datos tal vez no sea lo que mas ilusión nos haga.
Con las siguientes Query’s podemos resolver este inconveniente que, aunque podría haberlo hecho Microsoft de forma sencilla, nos obliga a ejecutar las siguientes cinco consultas.
sp_rename '[esquema].[tabla].[columna]', '[nombre_temporal]', 'COLUMN'");
ALTER TABLE [esquema].[tabla] ADD [columna], [tipo];
UPDATE [esquema].[tabla] SET [columna]=CASE WHEN isnumeric([nombre_temporal) = 1 THEN CONVERT([tipo], CONVERT(float, [nombre_temporal)) ELSE 0 END');
-- Si hay constraint, caso contrario no se hace
ALTER TABLE [esquema].[tabla] drop constraint [constraint_default]');
ALTER TABLE [esquema].[tabla] DROP COLUMN [nombre_temporal]
Y ya está, cambiado el tipo de la columna. Recuerda que si los datos no son compatibles se convertirán a 0