none
Crear un trigger que actualice una tabla relacionada con otra RRS feed

  • Pregunta

  • Hola, necesito ayuda con un trigger, les explico.

    tengo una tabla llamada "notaPedido_Detalle" con un campo llamado "pcant"  donde se va actualizando cada vez que se atienden los articulos que este contiene.

    ahora en otra tabla llamada "separados" tengo un campo llamado "cantidad_pendiente" que contiene la cantidad de articulos que deben ser atendidos para que el campo "estado" pase de "pendiente" a "atendido" cuando el "pcant" de la tabla notaPedido_Detalle sea igual al campo "cantidad_pendiente" de la tabla "separados" por ejemplo:

    si notaPedido_Detalle.pcant>= separados.cantidad_pendiente entonces

    separados.estado="atendido"

    nose como realizar el codigo para que esto se realice, espero me puedan entender y ayudar. gracias.


    martes, 23 de septiembre de 2014 21:21

Respuestas

  • Deleted
    • Marcado como respuesta Uriel Almendra jueves, 25 de septiembre de 2014 16:48
    martes, 23 de septiembre de 2014 23:08
  • Hola te recomiendo que esa logica la hagas en el SP donde actualizas pcant . De manera que cuando hagas el update deberia quedarte algo asi :

    update notaPedido_Detalle
    set pcant = @pcant,
        estado = ISNULL((select 'atendido' from separados where separado.PedidodetalleID = notaPedido_Detalle.PedidodetalleID
    and separados.cantidad_pendiente = @pcant),estado)
    where PedidodetalleID = XXX

    La tabla "separado" deberia tener una relacion 1:1 con notaPedidoDetalle (caso contrario lanzaria una excepcion) o deberias revisar tu modelo. como no posteas el codigo de las tablas ni ejemplos de datos no puedo ayudarte mas que eso.

    Te recomiendo evitar los trigger, no xq sean malos en si mismos sino porque creo que hay muchos malos usos y falta de conocimiento para programar uno correctamente (por ejemplo, sin ofender Joseph, el codigo del trigger no esta preparado para trabajar con conjuntos de filas actualizadas y el trigger se ejecutaría sin errores a pesar de eso). Ademas no necesitas complicarte con un trigger siendo que los puedes resolver de esta manera

    Saludos


    Juan Pablo Burgos


    miércoles, 24 de septiembre de 2014 2:18

Todas las respuestas

  • Hola te recomiendo que esa logica la hagas en el SP donde actualizas pcant . De manera que cuando hagas el update deberia quedarte algo asi :

    update notaPedido_Detalle
    set pcant = @pcant,
        estado = ISNULL((select 'atendido' from separados where separado.PedidodetalleID = notaPedido_Detalle.PedidodetalleID
    and separados.cantidad_pendiente = @pcant),estado)
    where PedidodetalleID = XXX

    La tabla "separado" deberia tener una relacion 1:1 con notaPedidoDetalle (caso contrario lanzaria una excepcion) o deberias revisar tu modelo. como no posteas el codigo de las tablas ni ejemplos de datos no puedo ayudarte mas que eso.

    Te recomiendo evitar los trigger, no xq sean malos en si mismos sino porque creo que hay muchos malos usos y falta de conocimiento para programar uno correctamente (por ejemplo, sin ofender Joseph, el codigo del trigger no esta preparado para trabajar con conjuntos de filas actualizadas y el trigger se ejecutaría sin errores a pesar de eso). Ademas no necesitas complicarte con un trigger siendo que los puedes resolver de esta manera

    Saludos


    Juan Pablo Burgos


    miércoles, 24 de septiembre de 2014 2:18