Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

mismo id en 5 tablas

Estas en el tema de mismo id en 5 tablas en el foro de SQL Server en Foros del Web. no se si en este foro me den la solucion o lo tengo que mover. Como puedo hacerle para que al momento de darle al ...
  #1 (permalink)  
Antiguo 14/08/2011, 18:05
 
Fecha de Ingreso: agosto-2010
Ubicación: Rincon de Romos
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 0
Exclamación mismo id en 5 tablas

no se si en este foro me den la solucion o lo tengo que mover.

Como puedo hacerle para que al momento de darle al boton que tengo programado en asp para dar altas me guarde con el mismo id, tengo 5 tablas en una base de datos todas con

id_consecutivo_generales
id_consecutivo_motor
id_consecutivo_interruptor
id_consecutivo_volts
id_consecutivo_productos

quiero que se guarden con el mismo id de id_consecutivo_generales como le hago por que tengo que sacar lo datos un formulario y quiero que al seleccionar el id me autocomplete el formulario en base a las tablas de arriba
  #2 (permalink)  
Antiguo 14/08/2011, 22:13
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: mismo id en 5 tablas

a mi ver lo mas sencillo es que la id sea un valor auto numérico en las 5 tablas y todas las inicies al mismo tiempo osea si registras un dato en la tabla 1 lo hagas también en el resto aun cuando los valores tengan que ser nulos para de esta forma conservar el consecutivo idéntico en las 5 tablas
  #3 (permalink)  
Antiguo 15/08/2011, 16:01
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años
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

Etiquetas: asp.net., consecutivo, sql2008
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:12.