none
Trigger que compare valores después de insertar y actualice un campo del registro. RRS feed

  • Pregunta

  • Hola! buenas tardes, ojalá me puedan echar una mano con esto: 

    Tengo 2 tablas con los siguientes campos. 

    Tabla1. Compromisos (nombre, razon_social, Id_emisor_altaben, emisor_RFC Id_empresa, recep_RFC,)

    Tabla 2 Beneficiarios (Id_beneficiarioRFC_beneficiario Id_empresaRFC_empresa), 

    al insertar un registro en tabla Compromisos no tengo los campos,  Id_emisor_altaben ni Id_empresa, entonces estoy tratando de comparar: si (emisor_RFC y recep_RFC de tabla Compromisos es igual que RFC_beneficiario y RFC_empresa de tabla Beneficiarios me traiga el Id_beneficiario y Id_empresa de tabla Beneficiarios y lo actualice en Id_emisor_altaben y Id_empresa de tabla Compromisos. 

    Solo tengo este código pero no esta funcionando, espero que me puedan guiar para buscar una manera de encontrar estos valores.

    CREATE TRIGGER Id_Bene
        ON [dbo].[Compromiso]
        AFTER INSERT
    AS
    BEGIN

    update e
            set 

                     e.Id_emisor_altaben = c.Id_beneficiario
       FROM
      inserted i
      INNER JOIN Compromiso e ON (i.emisor_RFC + i.recep_RFC = e.emisor_RFC + e.recep_RFC)
      INNER JOIN Beneficiarios_RFC_ID c ON (e.emisor_RFC + e.recep_RFC = c.RFC_beneficiario + RFC_empresa)
    END

    Gracias!

        
    • Editado Nalle Ortiz lunes, 10 de octubre de 2016 0:11
    lunes, 10 de octubre de 2016 0:11

Respuestas

  • Nalle Ortiz,

    CREATE TRIGGER Id_Bene
        ON [dbo].[Compromiso]
        AFTER INSERT
    AS
    BEGIN
        UPDATE c    
        SET 
    	   c.Id_emisor_altaben = b.Id_beneficiario,
    	   c.Id_empresa = b.Id_empresa
        FROM
    	   inserted i
    	   INNER JOIN Compromiso c ON (i.emisor_RFC = c.emisor_RFC)
    		  AND (i.recep_RFC = c.recep_RFC)
    	   INNER JOIN Beneficiarios_RFC_ID b ON (c.emisor_RFC = b.emisor_RFC)
    		  AND (c.recep_RFC = b.recep_RFC)
    END


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    lunes, 10 de octubre de 2016 0:33

Todas las respuestas

  • Nalle Ortiz,

    CREATE TRIGGER Id_Bene
        ON [dbo].[Compromiso]
        AFTER INSERT
    AS
    BEGIN
        UPDATE c    
        SET 
    	   c.Id_emisor_altaben = b.Id_beneficiario,
    	   c.Id_empresa = b.Id_empresa
        FROM
    	   inserted i
    	   INNER JOIN Compromiso c ON (i.emisor_RFC = c.emisor_RFC)
    		  AND (i.recep_RFC = c.recep_RFC)
    	   INNER JOIN Beneficiarios_RFC_ID b ON (c.emisor_RFC = b.emisor_RFC)
    		  AND (c.recep_RFC = b.recep_RFC)
    END


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    lunes, 10 de octubre de 2016 0:33
  • Otra vez mil gracias Willams Morales. 

    Me ha funcionado a la perfección, me encuentro muy agradecida contigo.

    Saludos!.

    lunes, 10 de octubre de 2016 1:24