J'ai aimé l'idée de Michael mais cela ne vous permettra qu'une seule fausse valeur par nom dans SQL Server. Pour éviter cela comment sur l'utilisation
ALTER TABLE yourtable
ADD [ValueCheck] AS
(case [defaultValue] when (1) then ('~Default#[email protected]') /*Magic string!*/
else value end) persisted
puis ajouter la contrainte unique pour (Nom, ValueCheck).
Je suppose que le nom, les combinaisons de valeurs seront uniques. Si la colonne de valeur n'autorise pas les valeurs NULL, utiliser NULL
plutôt que la chaîne magique serait préférable sinon choisir une chaîne qui ne peut pas apparaître dans les données (par exemple 101 caractères si la colonne de valeur n'autorise que 100 caractères)
I + 1ed this mais ensuite réalisé que cela ne fonctionne pas. Les contraintes uniques dans SQL Server autorisent uniquement 1 NULL. –
Vous avez raison. :( –
Si yourtable a une colonne de clé (par exemple, keyid), alors changer NULL à keyid ci-dessus devrait fonctionner –