J'ai une table de données héritée dans SQL Server 2005 qui a un PK sans identité/autoincrement et aucun pouvoir pour en implémenter un. Par conséquent, je suis obligé de créer manuellement de nouveaux enregistrements dans ASP.NET via la méthode ole "SELECT MAX (id) + 1 FROM table" -avant-insert.Comment éviter une condition de concurrence de base de données lors de l'incrémentation PK de la nouvelle ligne
De toute évidence, cela crée une condition de concurrence sur l'ID en cas d'insertions simultanées.
Quelle est la meilleure façon de résoudre gracieusement l'événement d'une collision de course? Je suis à la recherche d'idées de code VB.NET ou C# dans le sens de la détection d'une collision, puis réessayer l'insertion échouée en obtenant encore un autre max (id) + 1. Est-ce que cela peut être fait?
Pensées? Commentaires? Sagesse?
Merci!
REMARQUE: que se passe-t-il si je ne peux pas modifier la base de données de quelque manière que ce soit?
Juste ce dont j'avais besoin merci !!! –