Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/11/2011, 09:23
Avatar de gnzsoloyo
gnzsoloyo
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)