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 :

2 requetes ou rien- ROLLBACK?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut 2 requetes ou rien- ROLLBACK?
    Bonjour,
    Question bete mais je n'arrive pas a trouver de solution....

    J'ai deux requetes REQ1 et REQ2, une DELETE et une INSERT , je les déclenche par EXEC (REQ1) puis EXEC (REQ2), j'aimerais pouvoir les exécuter dans un "lot" , tout ou rien, c'est à dire que le vidage de la table ne soit pris en compte que si l'insertion est possible car actuellement je peux avoir une bonne exécution de la premiere requete DELETE mais une erreur sur la 2eme, INSERT donc je me retrouve avec une table vide. Existe-t-il un moyen de mettre EXEC(REQ1) et EXEC(REQ2) dans une "transaction" où un rollback est possible en cas d'erreur de la requete d'insertion?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 255
    Points : 12 917
    Points
    12 917
    Par défaut
    Bonjour,
    Il faut englober les deux requêtes dans une transaction.
    Un commit si tout se passe bien, ou un rollback si une erreur survient.

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Merci, Pourrais-je vous demander la syntaxe ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BEGIN TRANSACTION
    Exec(SQL1)
    Exec(SQL2)
    ...
    ??

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 897
    Points : 53 135
    Points
    53 135
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    BEGIN TRY -- début du bloc de contrôle d'exception
       BEGIN TRANSACTION; -- début de la transaction
       DELETE ...;
       INSERT ...;
       COMMIT; -- validation de la transaction
    END TRY  -- fin du bloc de contrôle d'exception
    BEGIN CATCH -- début du bloc de gestion d'exception
       IF XACT_STATE() <> 0 -- teste si la transaction est encore "vivante"
          ROLLBACK -- annule si elle est toujours vivante
       THROW; -- relance l'éventuelle exception pour en connaître la raison
    END CATCH -- fin du bloc de gestion d'exception
    A +

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Août 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Août 2015
    Messages : 30
    Points : 12
    Points
    12
    Par défaut Top !!
    Un grand merci ! je teste ça dès demain !

Discussions similaires

  1. [MySQL] Après requete SQL, rien ne veut pas afficher
    Par robinmaret dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 23/09/2009, 14h47
  2. [vb.net][requete]rien ne se passe
    Par Alex35 dans le forum VB.NET
    Réponses: 3
    Dernier message: 23/11/2005, 13h00
  3. Liste déroulante sur requete ? rien dans la FAQ
    Par Cablan dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2005, 09h30
  4. Requete OR qui ne ramene rien
    Par Sapience dans le forum Langage SQL
    Réponses: 10
    Dernier message: 14/04/2005, 12h12
  5. [C#] Ma requete ne donne rien
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/01/2005, 17h52

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