Convertir INT a VARCHAR

Todos,

Tengo una tabla poblada con la columna 'SSN' como tipo de dato INT. ¿Es posible convertir la columna 'SSN', y los datos dentro de la columna, a VARCHAR(#)'s.

ALTER TABLE Table1
 MODIFY SSN varchar(9);

¿Eso funcionará?

¡Gracias!

Cualquier ayuda es apreciada!

preguntado el 03 de mayo de 12 a las 19:05

3 Respuestas

alter table Table1
  alter column SSN varchar(9);

Puede hacer una prueba rápida para verificar que esto preservará los datos.

create table #data(
  ssl int
)

insert into #data values(1)
insert into #data values(2)
insert into #data values(3)
insert into #data values(4)

select * from #data

alter table #data
  alter column ssl varchar(9)

select * from #data

Y nunca está de más tener copias de seguridad antes de hacer cosas como esta. Incluso una inserción rápida en otra tabla funciona si no se trata de una gran cantidad de datos.

contestado el 03 de mayo de 12 a las 19:05

¿Convertirá esto los datos de la columna en varchar y conservará los datos? - evglynn

Recomendaría reconstruir su índice agrupado (o la tabla en el caso de un montón) después de esto, ya que sus páginas de datos se fragmentarán bastante. - JNK

@evglynn: pruébelo en una base de datos de prueba y tendrá su respuesta en segundos en lugar de esperar una respuesta. - styxxy

Solo me preocupa perder los datos de la columna. Pronto reconstruiremos la tabla, pero necesito ver si una cadena funcionará. En este caso, ¿convertirá los valores a varchar como se desee? - evglynn

Sí, conservará los datos. Sin embargo, siempre es una buena idea hacer una copia de seguridad de las cosas primero. - Dave Carlile

Para aquellos que necesitan la sintaxis de MySQL en lugar de la sintaxis de ANSI SQL, intente algo como:

ALTER TABLE Table1 MODIFY SSN varchar(9)

Respondido el 16 de junio de 21 a las 20:06

No le permite cambiar el tipo de columna si ya tiene los datos presentes. Puede realizar una copia de seguridad de los datos y luego volver a llenar la tabla una vez que se modifique.

Respondido el 11 de junio de 20 a las 09:06

No es cierto que podemos usar Alter table test Alter column id varchar(10) y no veo ningun problema. - Amirhossein

De hecho, su respuesta simplemente no es cierta. - amdev

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.