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 :

[SQL Server 2000] Problème de curseur dans une procédure stockée


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 58
    Points : 34
    Points
    34
    Par défaut [SQL Server 2000] Problème de curseur dans une procédure stockée
    Bonjour,

    Il me semble avoir un problème de curseur lors de l'appel de ma procédure stockée. Voici le code :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    CREATE PROCEDURE nom_proc
      @premierParam bigint,
      @deuxiemeParam smallint,
    --etc.
    AS
      DECLARE
        @supNumeroT1 bigint
      DECLARE
        @supNumeroT2 int
      DECLARE
        Curseur_supNumeroT1 CURSOR FOR
    	SELECT numeroT1
    	FROM audit_T1
      DECLARE
        Curseur_supNumeroT2 CURSOR FOR
    	SELECT numeroT2
    	FROM audit_T2
     
      --On supprime en premier les enregistrements de T2.
      OPEN Curseur_supNumeroT2
      FETCH next FROM Curseur_supNumeroT2 INTO @supNumeroT2
      WHILE @@FETCH_STATUS = 0
      BEGIN
        DELETE T2
        FROM T2
        WHERE numeroT2=@supNumeroT2
      END
      CLOSE Curseur_supNumeroT2
     
      --On supprime ensuite les enregistrements de T1 dans T1.
      OPEN Curseur_supNumeroT1
      FETCH next FROM Curseur_supNumeroT1 INTO @supNumeroT1
      WHILE @@FETCH_STATUS = 0
      BEGIN
        DELETE T1
        FROM T1
        WHERE numeroT1=@supNumeroT1
      END
      CLOSE Curseur_supNumeroT1
    Lors de l'insertion d'enregistrements dans les tables T1 et T2, je fais appel à plusieurs procédures stockées d'insertion et je mets dans une table d'audit les identifiants des enregistrements insérés.

    Seulement, si une des procédures stockées d'insertion plante, je voudrais effacer les enregistrements insérés jusque là (c'est à ça que servent les tables d'audit). Le problème, c'est que lorsque je lance cette procédure là, j'efface une seule ligne de chacune des deux tables, puis la requête continue indéfiniment (jusqu'au timeout) comme si je faisais une boucle infinie.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    postes le code complet,
    - tes variables @supNumeroT1 bigint
    et @supNumeroT2 int sont initialisées comment?
    - pourquoi tu fais DELETE T2
    FROM T2
    WHERE numeroT2=@supNumeroT2
    dans un curseur?
    Errare humanum est, perseverare diabolicum (Sénèque)

Discussions similaires

  1. [Sql server 2000] gerer les erreurs dans une procedure
    Par lemagicien dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/03/2008, 21h15
  2. [SQL-SERVER 2000] Problème de requête sur une seule ligne
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/04/2006, 16h54
  3. Réponses: 4
    Dernier message: 16/12/2005, 16h25
  4. Problème Alter view dans une procédure stockée
    Par adjava dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/07/2005, 17h45
  5. [SQL Server] Passage d'un paramètre dans une procédure
    Par navis84 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2005, 13h19

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