Viděl jsem ten článek, ale všimněte si, že pro nízkou poruchovost bych dal přednost vzoru "JFDI". Už jsem to dříve používal na vysokoobjemových systémech (40 000 řádků za sekundu).
V Aaronově kódu stále můžete získat duplikát při prvním testování při vysoké zátěži a spoustě zápisů. (vysvětleno zde na dba.se ) To je důležité:vaše duplikáty se stále vyskytují, jen méně často. Stále potřebujete zpracování výjimek a vědět, kdy ignorovat duplicitní chybu (2627)
Edit:stručně vysvětleno Remusem v jiné odpovědi
Měl bych však samostatný TRY/CATCH na testování pouze za duplicitní chybu
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