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 :

2 Curseurs imbriqués


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut 2 Curseurs imbriqués
    Salut à tous,

    j'ai un niveau tres moyen en SQL et BDD en général, et j'ai du me frotter aux curseurs.

    J'ai un curseur CurAcn, dans lequel je fais un insert dans Table1, et cet insert déclenche un autre curseur CurCpy qui fait un update dans Table2.
    Séparément ces curseurs fonctionnent tres bien, mais quand j'essaye d'executer les 2 imbriqués, j'ai un message d'erreur qui me dit qu' "un curseur CurAcn ouvert existe deja", pourtant j'ai bien mes Close et Deallocate à la fin de mes curseurs.

    Y'a-t-il une syntaxe particuliere dans le cas d'une imbrication ? est ce que le fait de lancer un deallocate du second curseur peut avoir un impact sur le premier ?


    Merci d'avance !!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Bon en fait apres relecture, c'est normal, mes triggers contenant les curseurs se déclenchent l'un l'autre '-_-
    Donc nouvelle question : y'aurait-il par miracle un moyen de dire "execute trigger 1 sauf si tu es dans trigger 2" ?

  3. #3
    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
    deja, ne donne JAMAIS le nom a des objets différents
    si ce n'est pas le cas:
    un UPDATE est en fait un DELETE puis INSERT donc ....

    poste le code de tes 2 curseurs

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Points : 231
    Points
    231
    Par défaut
    Merci beaucoup de ton aide ! Je viens de m'en sortir en intégrant un trigger dans l'autre.
    Sinon il y a la solution du ALTER TABLE table DISABLE TRIGGER trigger , puis enable de nouveau apres la modif. Dans mon cas c'était impossible mais sinon ca doit marcher !

    Merci tout de meme de ton intervention et je prends bonne note de ta remarque !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. deux curseur imbriqués
    Par dyngry dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/12/2009, 23h51
  2. [SQL 2005] Curseurs imbriqués
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/09/2008, 11h24
  3. Problème de curseurs imbriqués
    Par groupe51 dans le forum SQL
    Réponses: 7
    Dernier message: 15/05/2008, 14h21
  4. Réponses: 8
    Dernier message: 31/10/2007, 13h15
  5. Possibilité de faire des curseurs imbriqués?
    Par jeje.r dans le forum Sybase
    Réponses: 3
    Dernier message: 22/04/2007, 01h09

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