Bonjour,
j'ai fait une SP pour mettre à jour des champs d'une table. L'application montant en charge, j'ai parfois cette sp qui est exécutée à 1 seconde d'intervalle à partir d'un autre PC mais sous le même login SQL.
j'ai le message suivantje suppose que c'est parce que la première est en cours de mise à jour et qu'il ne veut pas laisser la seconde s'exécuter pour ne pas avoir de mauvais chiffre.Error : System.Exception: System.Data.SqlClient.SqlException (0x80131904): La transaction d'isolement d'instantané a été abandonnée en raison d'un conflit de mise à jour. Vous ne pouvez pas utiliser l'isolement d'instantané pour accéder à la table 'dbo.Journee' directement ou indirectement dans la base de données '' afin de mettre à jour, de supprimer ou d'insérer la ligne modifiée ou supprimée par une autre transaction.
existe-t-il un moyen de dire à SQL d'attendre que la première est finie avant de faire la seconde plutôt que planter ? comme un FIFO. ou alors une autre approche.
ma SP met à jour des infos grâce à une requête imbriquées. Peut être que c'est préférable de faire la requête de comptage , puis l'update ?
Merci
morceau de contenu de la SP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 update Journee set UVGlobalJournee = ( SELECT CASE WHEN max(E.UVGlobale) IS NULL THEN 0 ELSE max(E.UVGlobale) END FROM Examen E inner join IT_Journee_Examen IT on E.IdExamen = IT.IDEXAMEN WHERE Journee.IdJournee = IT.IDJOURNEE ) WHERE Test = '1' and Journee.IdPlanning = @IdPlanning
Partager