ALTER TABLE TBCOLABORADOR_SALARIO
    ADD OUTROS_VALORES NUMERIC(10,2);

SET TERM ^ ;

CREATE OR ALTER trigger ttbcolaborador_salario_b01u for tbcolaborador_salario
active before update position 0
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

    HISTORICO = '';

    IF (OLD.SALARIO <> NEW.SALARIO) THEN
    BEGIN
        HISTORICO = HISTORICO||'Salario Data: '||FN_DATE_TO_STRING(OLD.DATA)||', Valor Salario: '||OLD.SALARIO||' -> '||NEW.SALARIO;
    END

    IF (OLD.OUTROS_VALORES <> NEW.OUTROS_VALORES) THEN
    BEGIN
        HISTORICO = HISTORICO||', Salario Data: '||FN_DATE_TO_STRING(OLD.DATA)||', Outros Valores: '||OLD.OUTROS_VALORES||' -> '||NEW.OUTROS_VALORES;
    END

    IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
    BEGIN
        HISTORICO = HISTORICO||', Salario Data: '||FN_DATE_TO_STRING(OLD.DATA)||', Observacao Alterada.';
    END

    IF (HISTORICO <> '') THEN
    BEGIN
        EXECUTE PROCEDURE SPI_HISTORICO('TBCOLABORADOR', NEW.COLABORADOR_CODIGO, HISTORICO);
    END
END
^

SET TERM ; ^

