CREATE OR ALTER trigger ttbavaliacao_des_resp_fat_b1u for tbavaliacao_des_resp_fator
active before update position 1
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.AVALIACAO_DES_RESPOSTA_ID <> NEW.AVALIACAO_DES_RESPOSTA_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' AV:'||OLD.AVALIACAO_DES_RESPOSTA_ID||'->'||NEW.AVALIACAO_DES_RESPOSTA_ID;
    END

    IF (OLD.TITULO <> NEW.TITULO) THEN
    BEGIN
        HISTORICO = HISTORICO||' TIT:'||OLD.TITULO||'->'||NEW.TITULO;
    END

    IF (OLD.PONTO <> NEW.PONTO) THEN
    BEGIN
        HISTORICO = HISTORICO||' FATOR '||OLD.titulo||' - PONTOS:'||OLD.PONTO||'->'||NEW.PONTO;
    END

    IF (OLD.AVALIACAO_DES_RESP_FAT_TIPO_ID <> NEW.AVALIACAO_DES_RESP_FAT_TIPO_ID) THEN
    BEGIN
        HISTORICO = HISTORICO||' TIPO:'||OLD.AVALIACAO_DES_RESP_FAT_TIPO_ID||'->'||NEW.AVALIACAO_DES_RESP_FAT_TIPO_ID;
    END

    IF (HISTORICO <> '') THEN
    BEGIN
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
       'TBAVALIACAO_DES_RESPOSTA', NEW.avaliacao_des_resposta_id,
      (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
      (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
       :HISTORICO);
    END
END;