Bonjour,
un de mes dév à coder un truc un peu bizarre !
La modification que j'ai en tête :
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 BEGIN BEGIN TRANSACTION SELECT @w = isnull(INFO_LINK2, 0) FROM toto (ROWLOCK) WHERE ID = @id IF @w = 0 BEGIN UPDATE toto SET INFO = 50 WHERE ID = @id COMMIT TRANSACTION SELECT @ostatus = 0 END ELSE BEGIN ROLLBACK TRANSACTION SELECT @oStatus = 2 END END
Mes questions sont les suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 BEGIN -- BEGIN TRANSACTION UPDATE toto SET INFO = 50 WHERE ID = @id AND isnull(INFO, 0) = 0 SET @r= @@ROWCOUNT -- COMMIT TRANSACTION IF @R>0 SELECT @ostatus = 0 ELSE SELECT @oStatus = 2 END
Mon code peut-il remplacer le code T-Sql que mon chère dév à écrit ?
Y a t-il correspondance entre les 2 codes en terme transactionnel ?
Pourquoi verrouiller un enregistrement puis le mettre à jour (cas du 1 code) alors qu'un simple update peut suffire ?
Merci
Partager