SQL Server - ALTER TABLE. Como ajustar datos antes de modificar un campo de la tabla

 
Vista:
sin imagen de perfil

ALTER TABLE. Como ajustar datos antes de modificar un campo de la tabla

Publicado por Pani (2 intervenciones) el 11/08/2017 01:45:07
Hola.

Agradezco de antemano la colaboración que puedan brindarme.

Estoy usando Sql server.
Soy novato. Estoy aprendiendo así que perdonen si ignoro algo que sea básico.
Me piden modificar un campo diferente de varias tablas diferentes que ya tienen datos.
Unos campos son tipo int otros son varchar otros son decimal.

Que debo hacer ANTES de lanzar el ALTER TABLE ...

Si el campo es int y lo cambio a varchar debo preocuparme por los datos o esta columna de datos se convierten en varchar sin problemas. Lo hace solo el SQL server sin que yo haga nada?

Si el campo es varchar y lo cambio a int como haria el ajuste de datos? Me facilitan un ejemplo donde cambie valores no-numericos por un Cero por ejemplo?

Si el campo es decimal(17,2) lo convierto a decimal(18,0) debo preocuparme por los datos o esta columna de datos se convierten sin problemas. ejemplo 458,34 se convierte solo a 458 o que debo hacer? Debo hacer un UPDATE o algo similar? Me facilitarían un ejemplo de Como se haría el UPDATE si fuera el campo int o si fuera varchar?

El mismo caso seria si lo que se cambia es reducción de longitud del campo?

Estaré pensando las cosas al revés y debo lanzar primero el ALTER TABLE y luego se hace algo posterior con los datos?

Gracias de antemano.

P.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ALTER TABLE. Como ajustar datos antes de modificar un campo de la tabla

Publicado por Isaias (4558 intervenciones) el 11/08/2017 16:30:28
Veamos, tratare de responder a tus dudas


Si el campo es int y lo cambio a varchar debo preocuparme por los datos o esta columna de datos se convierten en varchar sin problemas. Lo hace solo el SQL server sin que yo haga nada?

R= SQL Server no es una herramienta "magica" que adivine lo que tu deseas, es claro que si voy a convertir un campo de tipo CHAR a NUMERIC, todos aquellos datos que no sean de tipo NUMERIC, no se podrian convertir "magicamente", entonces, ¿como puedo saber que datos no son numericos?

1
SELECT Micampo FROM MyTabla WHERE ISNUMERIC(Micampo) = 0

Aqui te daria todos aquellos campos que NO son de tipo numerico

Por el contrario, si voy a convertir un campo de tipo NUMERICO a CHAR, aqui si, no hay problema, lo que traiga, te lo converitira, sin reparos.

Si el campo es varchar y lo cambio a int como haria el ajuste de datos? Me facilitan un ejemplo donde cambie valores no-numericos por un Cero por ejemplo?


R= Simple

1
2
UPDATE MyTabla SET Micampo = 0
WHERE ISNUMERIC(Micampo) = 0

Si el campo es decimal(17,2) lo convierto a decimal(18,0) debo preocuparme por los datos o esta columna de datos se convierten sin problemas. ejemplo 458,34 se convierte solo a 458 o que debo hacer? Debo hacer un UPDATE o algo similar?

R= Puedes usar LEN o LENGHT para ver la longitud de tu campo y de ahi, tomar decisiones, si intentas hacerlo de forma directa, SQL te mandara un mensaje de TRUNCAMIENTO.

Como se haría el UPDATE si fuera el campo int o si fuera varchar?

R= No se comprende tu pregunta, ¿a que te refieres?

El mismo caso seria si lo que se cambia es reducción de longitud del campo?

R= Ya te conteste, si cambias a una longitud menor, te enviara un mensaje de TRUNCAMIENTO, si es a un longitud MAYOR, no hay problema.

Estaré pensando las cosas al revés y debo lanzar primero el ALTER TABLE y luego se hace algo posterior con los datos?

R= YO (digo YO), crearia una tabla de PASO con las longitudes y tipos que deseo, pasaria los datos de la tabla orignal a esta nueva y veria que ERRORES me manda, de ahi, tomar decisiones.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

ALTER TABLE. Como ajustar datos antes de modificar un campo de la tabla

Publicado por Pani (2 intervenciones) el 12/08/2017 03:04:32
Muchas gracias Isaias, tus respuestas son muy claras y acertadas. Ya veo la luz en el camino. Con esto CREO que ya se como continuar. Gracias por ser un buen humano. Un Saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

ALTER TABLE. Como ajustar datos antes de modificar un campo de la tabla

Publicado por Isaias (4558 intervenciones) el 14/08/2017 16:08:34
De nada Pani
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar