Como evitar uma condição de corrida do banco de dados ao incrementar manualmente a PK da nova linha
Tenho uma tabela de dados herdada no SQL Server 2005 que possui uma PK sem identidade / incremento automático e sem poder de implementar um
Como resultado, sou forçado a criar novos registros no ASP.NET manualmente, através da técnica "SELECT MAX (id) + 1 FROM tabela" - antes da inserçã
Obviamente, isso cria uma condição de corrida no ID no caso de inserções simultânea
Qual é a melhor maneira de resolver graciosamente o evento de uma colisão de corrida? Estou procurando idéias de código VB.NET ou C # ao longo da linha de detecção de uma colisão e, em seguida, tente novamente a inserção com falha obtendo mais um máximo (id) + 1. Isso pode ser feit
Pensamentos? Comentários? Sabedoria
Obrigado
OTA: E se eu não puder alterar o banco de dados de nenhuma maneir