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 que toutes les autres sont égales à 0.
La solution avec des triggersurs existe mais j'aimerais que quelque chose soit embedded.
Est-ce qu'une telle chose est possible du tout?
modifier
En fait, je viens de remarquer que vous êtes sur SQL Server 2008, vous pouvez utiliser un index filtré pour cette
CREATE UNIQUE NONCLUSTERED INDEX UIX ON YourTable (col) where col = 1
Réponse originale
Le plus simple serait probablement de stocker ce pk spécial dans une table à une ligne séparée. L'aspect pas plus d'une ligne peut être appliqué avec des contraintes de vérification.
CREATE TABLE OneRowTable ( lock CHAR(1) DEFAULT 'X' NOT NULL PRIMARY KEY CHECK (lock = 'X'), OtherTablePK int );
Sinon, en supposant que vous ayez un champ id composé d'entiers positifs, vous pouvez append une colonne calculée avec la définition suivante
case when col=1 then -1 else id end
et ajoutez une contrainte unique à cela.