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