
30/01/2010, 10:19
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses Puntos: 2658 | |
Respuesta: puedo crear este trigger? Perdona, pero a mi entender estás complicando demasiado tratando de resolver esto.
El tema es así: Si todos los materiales de MATERIALES se combinan con cada registro de EQUIPO, podrías plantearte hacerlo en un TRIGGER o en un SP, pero si al menos un equipo no está relacionado con todos los materiales, entonces no podrás hacerlo de una forma u otra, ya que a priori no existiría forma de establecer cuáles sí y cuáles no sin enviarlos en forma específica... con lo que la mejor opción sería el INSERT múltiple.
¿Por qué no se puede hacer en ese caso con un TRIGGER?
Recordemos: Un TRIGGER es una rutina que se ejecuta automáticamente ante un evento de tabla (INSERT/UPDATE/DELETE), y sólo con los datos propios del evento. Esto significa: los campos que corresponden a la tabla. Ningún otro.
El problema es que no puedes hacer un TRIGGER para que desde la tabla EQUIPOS llene los campos de EQUIPO_MATERIALES, porque no puedes enviarle los valores de MATERIALES a la tala EQUIPOS... No le pertenecen y daría un error de sintaxis o de campos.
Sólo te quedaría hacer toda la tarea desde un STORED PROCEDURE, al que deberías invocar, como dices, N veces. Pero eso no tiene sentido, porque ello implicaría que tu ya tienes el par de valores de clave correpondientes a ambas tablas, así que ¿para qué usar un SP si puedes enviar un INSERT múltiple con mayor rapidez y eficiencia, en una sola sentencia?
¿Se comprende la idea?
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |