SQL - Modificar campo autonumérico

 
Vista:

Modificar campo autonumérico

Publicado por Javi Benito (1 intervención) el 26/10/2004 19:15:32
Hola a todos,
Tengo dos bases de datos de las que quiero pasar información de una a otra. En ciertas tablas tengo campos autonuméricos, con lo que para pasar los datos de una tabla a la otra debo usar
SET SET IDENTITY_INSERT tabla ON / OFF y recorrer cada registro de la tabla origen e insertarlo en la tabla destino. Cuando son muchos registros (80.000) la ejecución del trasvase tarda mucho.
¿Se puede hacer de otra manera más rápida?
¿Cómo se modifica el campo autonumérico para desactivar el IDENTITY, insertar todos los registros de golpe y luego volver a activar el IDENTITY?

Gracias a todos y un saludo
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

RE:Modificar campo autonumérico

Publicado por Isaías Islas (5072 intervenciones) el 26/10/2004 19:54:41
¿Cómo se modifica el campo autonumérico para desactivar el IDENTITY, insertar todos los registros de golpe y luego volver a activar el IDENTITY?

-- "APAGO", el Identity
SET IDENTITY_INSERT mytabla ON

--- Inserto los registros

-- "ENCIENDO", el Identity
SET IDENTITY_INSERT mytabla OFF
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

RE:Modificar campo autonumérico

Publicado por Alex (7 intervenciones) el 26/10/2004 20:23:26
Si recorres los registros uno por uno con un cursor, va a ir todo muy lento. Puedes probar haciendo lo siguiente:

insert into TABLA_DB1 select CAMPOS, .. FROM TABLA_DB2

Tienes que tener cuidado con hacer el select de los campos en el orden en que deben ir ingresados, además ten en cuenta tus campos autonuméricos, ahí debes hacer algo para no insertar valores duplicados, puedes insertar por ej:

insert into TABLA_DB1 select campoauto + (n), otroscampos... from TABLA_DB2

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

RE:Modificar campo autonumérico

Publicado por Alex (7 intervenciones) el 26/10/2004 20:31:17
En realidad depende donde kieres hacer el Insert, si vas a insertar en la tabla donde el campo autonumérico va a seguir igual entonces debes especificar los campos:

insert into TABLA_DB1 (camponoauto1, camponoauto2) select CAMPO1, CAMPO2 .. FROM TABLA_DB2
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