Idéalement, je veux faire ceci:
UPDATE TOP (10) messages SET status=10 WHERE status=0 ORDER BY priority DESC;
En anglais: je souhaite obtenir le top 10 des messages disponibles (statut = 0) dans la base de données et les verrouiller (statut = 10). Un message avec une priorité plus élevée doit être reçu en premier.
Malheureusement, MS SQL n'autorise pas la clause order by dans la mise à jour.
Quoi qu'il en soit, comment contourner cela?