
28/11/2011, 09:23
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses Puntos: 2658 | |
Respuesta: Guardar en Dos Tablas Con Una Sola Sentencia SQL En realidad tu pregunta es muy habitual. En el último mes y medio han preguntado lo mismo al menos cuatro o cinco veces, y en todos los casos la respuesta es la misma: Si tienes dos tablas para cargar, debes hacer dos sentencias INSERT de SQL, una para cada tabla. No hay otra.
Entendamos esto:
1) Lo que hagas en el formulario es irrelevante para la base de datos. Que tengas un sólo formulario no implica que la carga de datos sea en una sola sentencia, ni en una sola tabla (estoy en un proyecto en que un "Submit" de la vista del formulario desencadena 57 INSERTs diferentes en 34 procedimientos, y no exagero).
2) Si tienes dos tablas para cagar datos, tienes dos INSERTs distintos, porque no existe JOIN en el INSERT.
3) Si quieres hacer un sólo envío a la base, usa un procedimiento almacenado en la base que se ocupen de ambos INSERT.
4) Si el segundo depende del éxito del primero, usa TRANSACTIONs o stored procedures. En algunos casos pueden usarse TRIGGERs. Cualquiera de las opciones puede servirte.
Para poder ejemplificarlo con tu propio caso, deberías postear la estructura de las tablas, y decir qué condición de éxito de la primera consulta determina que se haga o no la segunda o se elimine todo.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |