2009-11-03 12 views
1

Dans SQL Server CE, les contraintes de clé étrangère sur les champs nvarchar sont uniquement appliquées après avoir déposé l'espace de fin. Cela signifie que si le PK est "foo" je peux insérer "foo" dans le FK.
Pourquoi est-ce le cas? Cela semble compromettre gravement l'intégrité des données que le système de clé étrangère est supposé fournir.Clés étrangères nvarchar SQL Server CE avec espace blanc de fin

Existe-t-il un moyen d'appliquer une contrainte de clé étrangère de telle sorte qu'un espace blanc soit inclus dans la comparaison? Quelles options ai-je pour contourner ce problème?
Le remplacement des champs FK par ints est la solution la plus évidente, mais c'est un dernier recours (dans mon cas) en raison de la façon dont l'application associée a été implémentée.

Répondre

0

C'est exact. Votre seul choix est de ne pas utiliser de FK à base de chaîne. Vous pouvez créer une table de recherche avec les chaînes qui leur ont attribué un identifiant unique que vous utiliserez ensuite pour vos FK si vous le souhaitez.