So che è già stata data una risposta, ma ho affrontato questo problema di recente e ho trovato qualcosa che funziona (e si comporta bene facendo una ricerca singleton per ogni riga inserita). Vedi l'esempio in questo articolo:http://michaeljswart.com/2011/06/enforcing-business-rules-vs-avoiding-triggers-which-is-better/
(e non utilizza una colonna di identità)