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 :

Erreur : The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut Erreur : The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
    Bonjour!

    J'essaye de faire une procédure stockée avec une transaction.
    que voici :
    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
    ALTER          procedure ps_i_CopyProfilDefault
    @Id_Interv integer
    AS
     declare @Id_Prof varchar(4000)
     declare @id_profil_identity integer
     set @Id_Prof = (select Id_Profil from Profil Where Id_Intervenant=@Id_Interv and IsDefault=1)
     
    print @Id_Prof
     
    if @Id_Prof !=NULL
    	Begin Tran
    		INSERT 	INTO Profil(Id_Intervenant,Description,Naissance,Debut_experience,Id_Societe,Id_Titre_Professionnel,Commentaire,IsDefault,Z_User,Z_Created,Z_Modified)
    		SELECT 	Id_Intervenant,Description,Naissance,Debut_experience,Id_Societe,Id_Titre_Professionnel,Commentaire,0,Z_User,Z_Created,Z_Modified
    		FROM Profil P   Where	Id_Profil=@Id_Prof 
     
    		set @id_profil_identity = @@identity
     
    		INSERT INTO Connaissance(Id_Profil,Id_Intervenant,Id_Domaine,Id_Item,Commentaire,Z_User,Z_Created,Z_Modified)
    		Select @id_profil_identity,Id_Intervenant,Id_Domaine,Id_Item,Commentaire,Z_User,Z_Created,Z_Modified from Connaissance Where Id_Profil=@Id_Prof
     
    		INSERT Into Formation_Complementaire(Id_Profil,Id_Intervenant,Id_Annee,Id_Outil,Commentaire,Z_User,Z_Created,Z_Modified)
    		Select @id_profil_identity,Id_Intervenant,Id_Annee,Id_Outil,Commentaire,Z_User,Z_Created,Z_Modified from Formation_Complementaire Where Id_Profil=@Id_Prof
     
    		Insert into Formation (Id_Profil,Id_Intervenant,Id_Annee,Id_Diplome,Commentaire,Z_user,Z_Created,Z_Modified)
    		Select @id_profil_identity,Id_Intervenant,Id_Annee,Id_Diplome,Commentaire,Z_user,Z_Created,Z_Modified from Formation Where Id_Profil=@Id_Prof
     
    		Insert into Experience(Id_Profil,Id_Intervenant,Id_MoisDebut,Id_AnneeDebut,Id_MoisFin,Id_AnneeFin,Id_Titre_Professionnel,Id_Client,Commentaire,Z_User,Z_Created,Z_Modified)
     
    		Select @id_profil_identity,Id_Intervenant,Id_MoisDebut,Id_AnneeDebut,Id_MoisFin,Id_AnneeFin,Id_Titre_Professionnel,Id_Client,Commentaire,Z_User,Z_Created,Z_Modified from Experience Where Id_Profil=@Id_Prof
    	commit tran
    Mais je n'arrive pas à l'exécuter, voici le code d'erreur :
    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
    13
     
    (1 row(s) affected)
     
     
    (24 row(s) affected)
     
     
    (1 row(s) affected)
     
     
    (2 row(s) affected)
     
     
    (5 row(s) affected)
     
    Server: Msg 3902, Level 16, State 1, Procedure ps_i_CopyProfilDefault, Line 29
    The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
    Stored Procedure: GestCompetence.dbo.ps_i_CopyProfilDefault
    	Return Code = -6
    Si quelqu'un voi où se trouve mon erreur je vous prie de bien vouloir m'aider.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Salut,

    Remplace
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if @Id_Prof !=NULL BEGIN
    et mets un
    après le COMMIT
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 180
    Points : 61
    Points
    61
    Par défaut
    Merci pour ta réponse!!!

    J'ai effectivement essayé d'ajouté le begin et le End et la je n'avais plus d'erreur... cependant je ne sais pas pourquoi il n'y avait aucune insertion...

    Donc pour finir j'ai enlevé la condition if, car de toute manière si la variable n'existe pas la transaction ne se fera pas...

    et merci encore

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Euh, mea culpa, j'ai encore copié sans réfléchir (décidément, aujourd'hui, c'est la deuxième fois que ça m'arrive).

    Tu ne peux pas faire , parce que tu ne peux pas tester un NULL de cette façon, la comparaison retournera toujours faux.
    La vraie comparaison est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if @Id_Prof IS NOT NULL
    Rudi Bruchez
    Rudi Bruchez EIRL, solutions MS SQL Server et NoSQL
    LinkedIn - [Outil libre de diagnostic SQL Server : Sql Trismegiste]
    LIVRES : Optimiser SQL Server -
    Microsoft SQL Server 2012 Security Cookbook
    - les bases de données NoSQL

    e-learning : LinkedIn Learning - Pluralsight

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

Discussions similaires

  1. message d'erreur <The module has not been deployed>
    Par alamako dans le forum Logging
    Réponses: 4
    Dernier message: 08/09/2010, 09h02
  2. Réponses: 0
    Dernier message: 06/08/2010, 11h12
  3. Erreur The document has no pages
    Par air75 dans le forum Documents
    Réponses: 1
    Dernier message: 18/03/2010, 12h52
  4. Réponses: 1
    Dernier message: 05/12/2007, 16h57
  5. La requête COMMIT TRANSACTION n'a pas de BEGIN TRANSACTION !
    Par BalBalNet dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/03/2006, 17h21

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