Je souhaite effectuer une mise à jour, puis sélectionnez le résultat. Je ne veux pas que quelque chose soit en mesure de mettre à jour la ligne que je mets à jour jusqu'à ce que la sélection ait eu lieu. Comment ferais-je cela?SQL Server 2005 et SELECT et UPDATE verrouillés
Mon but est d'incrémenter une valeur d'une ligne et de retourner cette valeur incrémentée. J'ai jusqu'ici trouvé que je me retrouve avec un problème où update (à incrémenter) suivi d'un select dans une situation où deux requêtes se produisent au même moment où les sélections semblent renvoyer le même nombre. Donc je devine que quelque chose comme update> update> select> select est en train de se passer. J'ai manqué étiqueté ceci comme SQL Server 2005. Je travaille réellement avec le serveur 2000. Ainsi la clause de rendement ne fonctionne pas (n'est pas dans cette version).
BEGIN TRANSACTION
UPDATE Table SET Last=(Last+1) WHERE ID=someid;
SELECT * FROM Table WHERE ID=someid;
COMMIT TRANSACTION
Vous ne faites certainement pas 'select> update> select' avec le premier select qui obtient la valeur utilisée dans la mise à jour? –
J'ajoute le débogage pour trouver les valeurs exactes, tout ce que je sais c'est qu'elles sont identiques. – aepheus
Pouvez-vous poster le code? –