close
Breaking news

Todos los que tenemos alojamiento compartido hemos tenido a veces la necesidad d...read more

Cambiar una columna de nvarchar a tipo numérico

Sucede a veces que te has equivocado al hacer una tabla de la base de datos (mas de lo que me gustaría…)..

Ups

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

No Comments

Leave a reply

Post your comment
Enter your name
Your e-mail address

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Story Page

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies. ACEPTAR

Aviso de cookies