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 :

commit et rollback....?


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut [RESOLU] commit et rollback....?
    Bonjour,

    je ne comprend pas tres bien le fonctionnement du commit/rollback sous sql server (2000).
    Voila, lorsque j'execute une procedure stockée (insert ou update, ou delete...) sans spécifier de commit, elle s'execute quand meme et agit correctement sur la base de données.....

    J'en deduit que par defaut chaque execution de proc. stockée est suivi d'un "commit"...Me trompe-je?

    merci d'avance,

    bonne journée + bon week end.

    Howard
    Knowledge Is Power, Arm Yourself.

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    Ca depend si tu es en mode chaine ou non-chaine. Par defaut, le commit est implicite (donc pas moyen de lancer un rolback qui n'aurait pas ete precede d'un begin tran).

    Si tu veux retomber sur la norme SQL (commit explicite), lance un set chained on, si je ne m'abuse...

    ... et je ne resiste pas a l'envie d'un p'tit quizz:

    soit l'ordre suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create table t(i int)
    begin tran
    insert into t values(1)
     begin tran
       insert into t values(2)
     commit tran
     begin tran
      insert into t values(3)
     rollback tran
    commit tran
    Question : qu'y aura-t-il dans la table t ?
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  3. #3
    En attente de confirmation mail
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par fadace
    Ca depend si tu es en mode chaine ou non-chaine. Par defaut, le commit est implicite (donc pas moyen de lancer un rolback qui n'aurait pas ete precede d'un begin tran).

    Si tu veux retomber sur la norme SQL (commit explicite), lance un set chained on, si je ne m'abuse...

    ... et je ne resiste pas a l'envie d'un p'tit quizz:

    soit l'ordre suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    create table t(i int)
    begin tran
    insert into t values(1)
     begin tran
       insert into t values(2)
     commit tran
     begin tran
      insert into t values(3)
     rollback tran
    commit tran
    Question : qu'y aura-t-il dans la table t ?
    1 et 2 ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    raté : en mode par défaut, il n'y aura rien dans la table, le rollback annulant la transaction courante. Si tu veux recevoir 1 et 2, il te faudra utiliser le save tran

    T'inquiètes pas : plus d'un tombera dans le panneau
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    okéééé je commence à saisir,

    si j'ai bien tout compris pour obtenir 1 et 2 dans la table t, le code aurait du être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    create table t(i int) 
    begin tran 
    insert into t values(1) 
    begin tran 
       insert into t values(2) 
    commit tran
    save tran
    begin tran 
      insert into t values(3) 
    rollback tran 
    commit tran
    Est ce bien cela?

    (genre je fais celui qui a compris alors que la reponse vient juste d'être donnée....)
    Knowledge Is Power, Arm Yourself.

  6. #6
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 554
    Points
    19 554
    Billets dans le blog
    25
    Par défaut
    oui
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 53
    Points : 26
    Points
    26
    Par défaut
    un GRAND merci !
    Knowledge Is Power, Arm Yourself.

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

Discussions similaires

  1. A quoi sert commit et rollback dans mysql
    Par malvax dans le forum Débuter
    Réponses: 2
    Dernier message: 09/04/2009, 22h58
  2. commit et rollback
    Par fredinarium dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/09/2007, 11h17
  3. Réponses: 8
    Dernier message: 25/01/2007, 13h25
  4. Informations sur les transactions, commit et rollback AIDE ?
    Par QAYS dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 23/09/2006, 13h44
  5. [SQL2K][TSQL]Commit et Rollback
    Par kkal dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/04/2006, 17h32

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