Yo lo uso tal cual lo explica delphi.com.ar.
Código:
CREATE EXCEPTION Facturas_NODELETE_E "ERROR SOLO SE PUEDE BORRAR LA ULTIMA";
SET TERM !! ;
CREATE TRIGGER Facturas_BDT FOR Facturas
BEFORE DELETE
AS
DECLARE VARIABLE AUX INTEGER;
BEGIN
SELECT MAX(num) FROM Facturas
WHERE periodo=OLD.periodo AND serie=OLD.serie
INTO AUX;
IF (OLD.num < :AUX)
THEN EXCEPTION Facturas_NODELETE_E;
END !!
SET TERM ; !!
Y ya que estamos ¿alguien quiere comentar algo? Este código lo uso para que no se pueda borrar mas que la última factura. El código funciona perfectamente, pero si alguien tiene algún otro método mejor estaría bien saberlo.