Agregar columna en tabla pesada

04/02/2004 - 04:23 por Gustavo Morales | Informe spam
En una tabla con varios millones de registros necesito agregar algunos
campos y quitar otros.
Existe un modo menos agobiante que el normal y que copia datos, borra tabla,
crea tabla, copia datos.
(Mas índices)

Gracias

Preguntas similare

Leer las respuestas

#1 Juan Carlos Leguizamón
04/02/2004 - 05:02 | Informe spam
Hola, no se si no entendi bien la pregunta, pero que no se pude usar un
ALTER TABLE ADD campo tipodato o un ALTER TABLE DROP COLUMN campo?

"Gustavo Morales" escribió en el mensaje
news:%
En una tabla con varios millones de registros necesito agregar algunos
campos y quitar otros.
Existe un modo menos agobiante que el normal y que copia datos, borra


tabla,
crea tabla, copia datos.
(Mas índices)

Gracias


Respuesta Responder a este mensaje
#2 Gustavo Morales
04/02/2004 - 05:07 | Informe spam
Lamentablemente el diseño no es mio y ni siquiera el rediseño.
Pero he encontrado una forma (no digo que sea sencilla)
Genero el Script de la tabla y sus indices y lo ejecuto creando una nueva
tabla
traslado a ella los datos y borro la original. Renombro la nueva.
Al menos me ahorro un viaje de data entre tabla origen y la temporal que
hace el propio SQL.

Saludos



"Adrian D. Garcia" escribió en el mensaje
news:ur8v6#
Lamentablemente no. Por eso mismo es fundamental planear todo este tipo de
cambios antes de que existan datos en las tablas, aunque muchas veces se


que
es imposible.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Gustavo Morales" wrote in message
news:%
> En una tabla con varios millones de registros necesito agregar algunos
> campos y quitar otros.
> Existe un modo menos agobiante que el normal y que copia datos, borra
tabla,
> crea tabla, copia datos.
> (Mas índices)
>
> Gracias
>
>


Respuesta Responder a este mensaje
#3 Gustavo Morales
04/02/2004 - 05:41 | Informe spam
Si, el asunto es el tiempo que toma esa operacion. Cuando haces un Alter
Table, SQL copia la data a una tabla temporal, copia la estructura de la
tabla e incluso los indices y los constraints para poder regenerarlos luego.
Despues borra la tabla y genera nuevamente la tabla con la nueva estructura.
Luego genera los indices y los constraints y al final devuelve la data de la
temporal a la nueva tabla. Mucho viaje no?

He conseguido (creo) ahorrarme un viaje haciendo todo manual.
Genero el script de la tabla, indices y constraints. Lo modifico como quiero
que quede y le doy un nuevo nombre a esa tabla. Ejecuto el script y cargo la
data de la tabla antigua a la nueva (puedo usar para esto el DTS) y luego
borro la tabla original y renombro la nueva. Creo que es un viaje menos.

"Juan Carlos Leguizamón" escribió
en el mensaje news:
Hola, no se si no entendi bien la pregunta, pero que no se pude usar un
ALTER TABLE ADD campo tipodato o un ALTER TABLE DROP COLUMN campo?

"Gustavo Morales" escribió en el mensaje
news:%
> En una tabla con varios millones de registros necesito agregar algunos
> campos y quitar otros.
> Existe un modo menos agobiante que el normal y que copia datos, borra
tabla,
> crea tabla, copia datos.
> (Mas índices)
>
> Gracias
>
>


Respuesta Responder a este mensaje
#4 Gustavo Morales
04/02/2004 - 05:44 | Informe spam
Me olvidaba. Todo este zafarrancho lo hago porque es una tabla muy grande (9
millones de registros).
Si fueran pocos usaria el Alter.

"Juan Carlos Leguizamón" escribió
en el mensaje news:
Hola, no se si no entendi bien la pregunta, pero que no se pude usar un
ALTER TABLE ADD campo tipodato o un ALTER TABLE DROP COLUMN campo?

"Gustavo Morales" escribió en el mensaje
news:%
> En una tabla con varios millones de registros necesito agregar algunos
> campos y quitar otros.
> Existe un modo menos agobiante que el normal y que copia datos, borra
tabla,
> crea tabla, copia datos.
> (Mas índices)
>
> Gracias
>
>


Respuesta Responder a este mensaje
#5 Juan Carlos Leguizamón
04/02/2004 - 05:56 | Informe spam
Pos creo que dejare este tema a alguno de los gurus del grupo, aunque creo
que estas haciendo el "alter" por enterprise manager y no por el query
analizer, ¿o no?

"Gustavo Morales" escribió en el mensaje
news:
Si, el asunto es el tiempo que toma esa operacion. Cuando haces un Alter
Table, SQL copia la data a una tabla temporal, copia la estructura de la
tabla e incluso los indices y los constraints para poder regenerarlos


luego.
Despues borra la tabla y genera nuevamente la tabla con la nueva


estructura.
Luego genera los indices y los constraints y al final devuelve la data de


la
temporal a la nueva tabla. Mucho viaje no?

He conseguido (creo) ahorrarme un viaje haciendo todo manual.
Genero el script de la tabla, indices y constraints. Lo modifico como


quiero
que quede y le doy un nuevo nombre a esa tabla. Ejecuto el script y cargo


la
data de la tabla antigua a la nueva (puedo usar para esto el DTS) y luego
borro la tabla original y renombro la nueva. Creo que es un viaje menos.

"Juan Carlos Leguizamón" escribió
en el mensaje news:
> Hola, no se si no entendi bien la pregunta, pero que no se pude usar un
> ALTER TABLE ADD campo tipodato o un ALTER TABLE DROP COLUMN campo?
>
> "Gustavo Morales" escribió en el mensaje
> news:%
> > En una tabla con varios millones de registros necesito agregar algunos
> > campos y quitar otros.
> > Existe un modo menos agobiante que el normal y que copia datos, borra
> tabla,
> > crea tabla, copia datos.
> > (Mas índices)
> >
> > Gracias
> >
> >
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida