Jeg har set den artikel, men bemærk, at for lave fejlfrekvenser ville jeg foretrække "JFDI"-mønsteret. Jeg har brugt dette på højvolumensystemer før (40k rækker/sekund).
I Aarons kode kan du stadig få en duplikat, når du tester først under høj belastning og masser af skrivninger. (forklaret her på dba.se ) Dette er vigtigt:Dine dubletter sker stadig, bare sjældnere. Du har stadig brug for undtagelseshåndtering og at vide, hvornår du skal ignorere dubletfejlen (2627)
Edit:forklaret kortfattet af Remus i et andet svar
Jeg ville dog have en separat TRY/CATCH for kun at teste for dubletfejlen
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