pues sería lo mismo, ¿no?
pones el índice único y en lugar de verificar con cualquiera de las formas:
Código SQL
[-]IF EXISTS(SELECT Codigo FROM TipoProducto WHERE Codigo=@Codigo)
....
SELECT @Codigo=Codigo FROM Inserted
SELECT Codigo FROM TipoProducto WHERE Codigo=@Codigo
IF (@@ROWCOUNT>1)
con esto sería suficiente:
Verificas si el número de error es de llave duplicada y muestras el mensaje...

