Il est nécessaire de créer une contrainte sur la colonne qui garantit qu'une seule valeur dans toutes les lignes est 1 et toutes les d'autres sont 0.SQL Server 2008: vérifie les contraintes qui garantissent qu'une seule valeur dans toutes les lignes est définie sur 1 et que d'autres 0
Solution avec des déclencheurs eXISTE mais je voudrais avoir quelque chose de construit.
est-ce une telle chose possible?
@Tim - Non. L'utilisation des fonctions définies par l'utilisateur dans les contraintes de vérification peut échouer avec les mises à jour multi-lignes et l'isolation des instantanés. J'utiliserais simplement l'approche de l'index filtré. Il s'assurera qu'au plus 1 ligne peut contenir la valeur '1'. Si vous mettez à jour votre question avec votre définition de table, je vais essayer de clarifier ma deuxième suggestion. (Edit: C'était en réponse à votre commentaire précédent qui semble avoir disparu maintenant!) –
ouais, j'ai vérifié cela dans les détails et il est devenu clair. Merci! – Tim
Cela a également pour effet d'accélérer considérablement les requêtes qui impliquent la ligne "active", c'est-à-dire "où col = 1" –