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

Langage SQL Discussion :

Procedure stockée de suppression


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut Procedure stockée de suppression
    Bonjour,

    Je souhaite faire une procédure stockée qui Delete tous les enregistrement retourné par une requête.
    Pourquoi faire une procedure stockée? Car celle ci sera appelé par un autre systeme et ne peut donc renvoyé d'erreur, si erreur elle doit continuer.
    Pour cela je voudrais l'entourer de Try Catch.

    Voici ma procedure:
    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
    17
    18
    19
    20
     
    CREATE PROCEDURE Flush
     
    AS
    BEGIN
    Declare @IDInter uniqueidentifier
    Declare Curseur Cursor for select IDIntervenant from Intervenant
    where Intervenant.IDIntervenant not in (select IDIntervenant from Voiture)
    and Etat=0;
     
    open curseur;
    Fetch next from curseur into @IDInter
    BEGIN TRY
    Delete from Intervenantwhere IDIntervenant =@IDInter
    END TRY
    CLOSE curseur
    DEALLOCATE curseur
     
    END
    GO
    Bien entendu cela ne fonctionne pas elle s'execute mais ne supprime pas les enregistrement voulu.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    Je ne comprend l'utilité de passer par un curseur intermédiaire en fait ?

    Pourquoi ne fait-vous pas directement le delete avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DELETE FROM Intervenant A
    WHERE NOT EXISTS (SELECT 1 FROM Voiture B 
    WHERE A.IDIntervenant = B.IDIntervenant) and Etat = 0

    Pour la gestion des erreurs vu que vous ne mettez pas l'environnement dans lequel vous évoluez ca me semble difficile de vous orienter.

  3. #3
    Membre habitué Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Points : 189
    Points
    189
    Par défaut
    Je developpe sous SQL server 2008

    L'interet de faire un curseur est de parcourir chaque enregistrement du curseur, et si l'un d'entre eux genere une erreur, on continu à tous les parcourir sans s'arreter.

    Merci pour vos precisions.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 115
    Points : 28 493
    Points
    28 493
    Par défaut
    Pour quelle raison une erreur serait elle générée ?
    Autant prendre en compte la cause éventuelle d'erreur dans les conditions de sélection de la requête.

Discussions similaires

  1. Ecriture d'une procedure stockée XP
    Par WOLO Laurent dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/07/2003, 14h09
  2. Réponses: 1
    Dernier message: 04/06/2003, 12h48
  3. procedure stockée champ date
    Par tripper.dim dans le forum SQL
    Réponses: 5
    Dernier message: 25/04/2003, 10h47
  4. Appel a une procedure stockée en vba
    Par The_Nail dans le forum VBA Access
    Réponses: 36
    Dernier message: 01/04/2003, 17h44
  5. procedure stockée dans un dbbatch
    Par pram dans le forum XMLRAD
    Réponses: 4
    Dernier message: 07/02/2003, 17h35

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