Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/08/2011, 16:01
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: mismo id en 5 tablas

El problema de la solución que plantea Ag666 es que no garantiza que siempre se creen los mismos valores en las 5 tablas, están los casos:

1. Si se insertan registros en las primeras 3 tablas y luego se produce un error en la base de datos que provoca un rollback de la transacción, aún cuando no se inserten datos, 3 tablas habrán incrementado el valor del campo identity y 2 tablas no.
2. Los campos identity se pueden resetear (por diferentes motivos) lo que puede generar un desfasaje entre las tablas.

Una solución puede ser definir solo la tabla id_consecutivo_generales con un campo identity y que sea la primera en insertar los valores, después puedes obtener el valor del identity con la función IDENT_CURRENT(‘id_consecutivo_generales’), por ejemplo:

Código:
insert into id_consecutivo_generales (data) values ('datos')

insert into id_consecutivo_motor  (id, data) 
values ( IDENT_CURRENT(‘id_consecutivo_generales’),'datos')

insert into id_consecutivo_interruptor  (id, data) 
values ( IDENT_CURRENT(‘id_consecutivo_generales’),'datos')

insert into id_consecutivo_volts  (id, data) 
values ( IDENT_CURRENT(‘id_consecutivo_generales’),'datos')

insert into id_consecutivo_productos (id, data) 
values ( IDENT_CURRENT(‘id_consecutivo_generales’),'datos')
Saludos