C'est une question plutôt basique et quelque peu étrange, je suppose. Supposons que j'ai une procédure stockée qui contient une instruction INSERT
(ou MERGE
), suivie par une instruction SELECT
. Puis-je toujours supposer que l'instruction INSERT
a fini d'écrire/de valider des données lorsque j'exécute SELECT
?SELECT après INSERT ne sélectionne pas les lignes récemment ajoutées
Faut-il s'attendre à ce que l'instruction SELECT
(parfois) ne sélectionne pas toutes les lignes insérées récemment? Si oui, quelles options dois-je avoir pour que l'instruction SELECT
attende la fin de l'instruction INSERT
(dans une procédure stockée) ou inclut des données éventuellement non validées?
Oui, vous pouvez supposer que lorsqu'une instruction se termine alors toutes les données sont correctement mis dans la base de données. Ceci est lié aux propriétés ACID des bases de données et à l'une des raisons pour lesquelles les bases de données relationnelles sont une technologie populaire. –
Juste pour ajouter, si vous voulez vous assurer que les données sont correctement insérées, utilisez simplement une variable et réglez-la sur 1 après insertion, puis vérifiez si la valeur de la variable est 1, puis utilisez l'instruction select. –
@GordonLinoff Alors, que dois-je faire si ce n'est pas le cas? – lith