IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

TRIGGER:Probleme sur After delete


Sujet :

MS SQL Server

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Par défaut TRIGGER:Probleme sur After delete
    Bonjour à tous,
    je suis à mon tous 1er code en TSQL.
    J'exécute le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    create trigger BkpClasse 
    	on table_1
    	after delete 
    as
    Begin
    	declare @bkp_ID as nvarchar (10)
    	declare @bkp_Nom as nvarchar (10)
    	declare @bkp_Classe as nvarchar (10)
    	set @bkp_ID = (select ID from deleted)
    	set @bkp_Nom = (select Nom from deleted)
    	set @bkp_Classe = (select Classe from deleted)
    	insert into Table_bkp
    		(champ1,champ2,champ3)
    	values
    		(@bkp_ID,@bkp_Nom,@bkp_Classe)
    end
    Le but est de sauvegarder dans la table "Table_bkp" toutes les valeurs supprimées dans "table_1".

    Malheureusement il n'y a que les noms des colonnes (ID,Nom et Classe) qui son sauvegardées en lieu et place des valeurs.

    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Attention car DELETED est une table virtuelle pouvant avoir plusieurs lignes de données. Si vous supprimez plusieurs lignes de données votre code TSQL ne traitera pas correctement ce cas.

    Voici votre code corrigé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TRIGGER BkpClasse 
    ON dbo.table_1
    AFTER DELETE 
    AS
    BEGIN
     
    	INSERT INTO dbo.Table_bkp (champ1,champ2,champ3)
    	SELECT ID, Nom, Classe FROM DELETED;
    END
    ++

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TRIGGER BkpClasse 
    ON dbo.table_1
    AFTER DELETE 
    AS
    BEGIN
     
    	INSERT INTO dbo.Table_bkp (champ1,champ2,champ3)
    	SELECT ID, Nom, Classe FROM DELETED;
    END
    Désolé ce code ne marche pas

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Désolé ce code ne marche pas
    C'est à dire ?

    ++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Août 2006
    Messages : 91
    Par défaut
    les données ne sont pas sauvegardées dans table_bkp lors de la suppression dans table_1

    Merci

  6. #6
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    OK.

    Dans ce cas pouvez vous poster les DDL complètes de vos tables concernées ainsi qu'un extrait de jeu de données ?

    ++

Discussions similaires

  1. Trigger after delete
    Par festayre47 dans le forum PL/SQL
    Réponses: 8
    Dernier message: 27/12/2007, 12h02
  2. probleme trigger update apres un delete
    Par agur29 dans le forum Développement
    Réponses: 10
    Dernier message: 12/09/2007, 19h30
  3. [Sybase] probleme sur un delete.
    Par agougeon dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/08/2006, 11h46
  4. [Access 2003]Probleme type de donnée sur requete DELETE
    Par pottiez dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/08/2006, 09h39
  5. [8i] Trigger before ou after delete
    Par Débéa dans le forum Oracle
    Réponses: 3
    Dernier message: 15/02/2006, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo