Trigger for delete

Bonjour,

Je voulais créer un trigger sur une table, dés que je supprime une ligne de cette table je voulais qu'il sera copié dans une autre table que je vais l'appeler table historique, SVP aidez moi.. J'ai besoin de votre aide..

Je comprend pas les triggers , voila le debut:

create trigger on TABLE for delete
as
select * from deleted
insert into historique values('CHAMPS')
...
Je sais vraiment pas que dois je faire, HELP... :(
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    pour créer un trigger qui insert le tuple supprimé dans la table Historique, tu dois suivre la synthaxe suivante:

    CREATE OR REPLACE TRIGGER Nom_TRIGGER
    BEFORE DELETE ON NOM_TABLE (NOM_TABLE: est le nom de la table que tu vient de lui suprimer un tuple)
    FO EACH ROW
    BEGIN
    -- aprés tu doit selectionner les champs à supprimer et les insérer dans la table historique
    end;
    1. OHHH, vous avez mis en commentaire la partie que je connais pas :'(
      OK.. si par exemple j'ai un seule champ "nom" dans ma table, lorsque je supprime une ligne (un nom), je voulez qu'il sera collé automatiquement dans la table historique, mais COMMENT je dois traduire ce blabla en sql server
      j'essaye...

      CREATE OR REPLACE TRIGGER Nom_TRIGGER
      BEFORE DELETE ON NOM_TABLE (NOM_TABLE: est le nom de la table que tu vient de lui suprimer un tuple)
      FO EACH ROW
      BEGIN
      -- aprés tu doit selectionner les champs à supprimer et les insérer dans la table historique
      declare @nom varchar(10)
      set @nom=(select nom from deleted)
      insert into historique values(@nom)

      end;

      est ce que c'est comme ça???

      merci encors
      1. ou bien ça
        declare
        nom2 delete.nom %type;
        Begin
        select nom from delete
        into nom2;
        insert into historique
        values(nom2);
        end;
        1. Derniere question: Comment signaler que le probleme est resolu sur ce forum ??? :p