Jag har sett den artikeln men notera att för låga felfrekvenser skulle jag föredra "JFDI"-mönstret. Jag har använt detta på högvolymsystem tidigare (40k rader/sekund).
I Aarons kod kan du fortfarande få en duplikat när du testar först under hög belastning och massor av skrivningar. (förklaras här på dba.se ) Detta är viktigt:dina dubbletter sker fortfarande, bara mer sällan. Du behöver fortfarande hantera undantag och veta när du ska ignorera dubblettfelet (2627)
Edit:förklarat kortfattat av Remus i ett annat svar
Jag skulle dock ha en separat TRY/CATCH för att endast testa för dubblettfelet
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