Eu vi esse artigo, mas observe que, para baixas taxas de falha, prefiro o padrão "JFDI". Eu usei isso em sistemas de alto volume antes (40k linhas/segundo).
No código de Aaron, você ainda pode obter uma duplicata ao testar primeiro sob carga alta e muitas gravações. (explicado aqui em dba.se ) Isso é importante:suas duplicatas ainda acontecem, apenas com menos frequência. Você ainda precisa de tratamento de exceção e saber quando ignorar o erro duplicado (2627)
Edit:explicado sucintamente por Remus em outra resposta
No entanto, eu teria um TRY/CATCH separado para testar somente para o erro duplicado
BEGIN TRY
-- stuff
BEGIN TRY
INSERT etc
END TRY
BEGIN CATCH
IF ERROR_NUMBER() <> 2627
RAISERROR etc
END CATCH
--more stuff
BEGIN CATCH
RAISERROR etc
END CATCH