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 :

Verrou / lock update / delete


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut Verrou / lock update / delete
    Bonjour à tous. J'ai un gros pépins sur un de mes devs.

    Voila le topo:

    j'ai un script vb qui lance deux requêtes:

    et de suite après:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM TOTO WHERE X=1
    Le tout est compris dans une transaction coté vb.

    Sauf que le delete est bloqué par un verrou sur la ligne. Le verrou vient de l'update.

    Cela donne:

    Expiration du délai d'attente. Le délai d'attente s'est écoulé avant la fin de l'opération ou le serveur ne répond pas.
    Je n'ai fait aucune demande explicite de verrou dans mes requêtes.
    La question folle qui me viens à l'esprit et:

    sql ne supporte pas un update + delete sur la même ligne dans la même transaction????

    Merci de votre aide. Wells

  2. #2
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Ceci est tout à fait normal si vous êtes dans le cas d'une transaction et que vous n'avez pas committé la 1ère transaction qui fait votre update.

    ++

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    Oki, j'ai une question subsidiaire alors, imaginons:

    je fait:

    UPDATE
    commit
    DELETE
    plantage quelconque

    est ce que mon UPDATE sera rollbacker?? (pas très français ca! lol)

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Une petite question, quel est l'intérêt d'effectuer un UPDATE immédiatement suivi d'un DELETE ?

    Faites directement le DELETE.

  5. #5
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    Même question que Waldar ..

    Pourquoi faites vous cela ?
    Expliquez nous ce que vous voulez faire exactement ..

    ++

  6. #6
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    C'est assez complexe, l'UPDATE entraine d'autres requêtes (modif de stock).

    Une fois c'est modif faites, le delete passe pour faire le ménage (avec d'autres modifs en prime)

  7. #7
    Expert éminent sénior
    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 : 45
    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
    Points : 12 891
    Points
    12 891
    Par défaut
    C'est assez complexe, l'UPDATE entraine d'autres requêtes (modif de stock).
    Humm ca sent le transfert de stock ou quelque chose du genre ...

    Oki, j'ai une question subsidiaire alors, imaginons:

    je fait:

    UPDATE
    commit
    DELETE
    plantage quelconque
    Si vous le faites dans une même transaction oui mais il faut modifier la phase de commit

    1- BEGIN TRAN
    2- UPDATE
    3- IF @@ERROR <> 0 ROLLBACK et STOP
    4- DELETE
    5- IF @@ERROR <> 0 ROLLBACK et STOP
    ELSE COMMIT

    Si vous le faites dans 2 transactions distinctes non

    ++

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Je dirai plutôt que ça sent le trigger qui fait 3000 opérations, et que ces-dites opérations seraient beaucoup plus à l'aise dans une procédure stockée !

  9. #9
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    C'est assez complexe, l'UPDATE entraine d'autres requêtes (modif de stock).

    Une fois c'est modif faites, le delete passe pour faire le ménage (avec d'autres modifs en prime)
    Même remarque que Waldar

    @++

  10. #10
    Membre du Club
    Inscrit en
    Janvier 2004
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 154
    Points : 62
    Points
    62
    Par défaut
    En mettant les deux requête dans la même transaction, ca marche mieux....forcement :p

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

Discussions similaires

  1. PB Lock sur delete dans une table
    Par greatmaster1971 dans le forum DB2
    Réponses: 10
    Dernier message: 06/07/2008, 20h49
  2. Réponses: 2
    Dernier message: 01/10/2007, 13h24
  3. requéte insert /update/delete par dataAdapter
    Par magui_laurene dans le forum Accès aux données
    Réponses: 1
    Dernier message: 02/08/2007, 14h12
  4. Réponses: 4
    Dernier message: 05/04/2005, 18h28
  5. Redirect de la page après un insert/update/delete
    Par mchicoix dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/02/2005, 09h31

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