Fondamentalement, SQL Server, une contrainte unique est en effet réalisé par le biais d'un index unique.
Les différences entre une contrainte UNIQUE et un INDEX UNIQUE sont assez subtiles, vraiment. Si vous créez un INDEX UNIQUE, vous pouvez faire référence qu'à une contrainte de clé étrangère d'une autre table (ne fonctionne pas si vous créer une contrainte UNIQUE....).
Alors, quelle est la différence? Bien une contrainte unique est vraiment plus d'une chose logique sur une table que vous souhaitez exprimer l'intention que le contenu d'une colonne donnée (ou d'un groupe de colonnes) est unique.
Un index unique (comme la plupart des indices) est plus de "derrière-le-scènes" détail de l'implémentation.
De mon point de vue, sauf si vous avez vraiment un problème avec ça, j'avais toujours l'utilisation d'un INDEX UNIQUE - l'avantage de faire partie d'une contrainte d'intégrité référentielle est tout à fait valable et peut être très utile dans certains cas. Fonctionnellement, dans la pratique, il n'y a pas de différence entre l'utilisation d'une Contrainte Unique vs Index Unique, vraiment.