Supposons que j’ai une requête :
Et puis j’oublie de m’engager ou de revenir en arrière.
Si un autre client tente d’exécuter une requête, que se passe-t-il ?
Supposons que j’ai une requête :
Et puis j’oublie de m’engager ou de revenir en arrière.
Si un autre client tente d’exécuter une requête, que se passe-t-il ?
Tant que vous ne validez pas ou n’annulez pas une transaction, elle est toujours en cours d’exécution et peut contenir des verrous.
Si votre client (application ou utilisateur) ferme la connexion à la base de données avant de valider, toutes les transactions en cours d’exécution seront annulées et terminées.
Les transactions sont destinées à s’exécuter complètement ou pas du tout. La seule façon de terminer une transaction est de valider, toute autre façon entraînera une restauration.
Par conséquent, si vous commencez puis ne validez pas, il sera restauré à la fermeture de la connexion (car la transaction a été interrompue sans marquer comme terminée).
Lorsque vous ouvrez une transaction, rien n’est verrouillé par lui-même. Mais si vous exécutez certaines requêtes à l’intérieur de cette transaction, en fonction du niveau d’isolement, certaines lignes, tables ou pages sont verrouillées, ce qui affectera d’autres requêtes qui tentent d’y accéder à partir d’autres transactions.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.