Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Eindeutigkeitsbeschränkung innerhalb einer Gruppe von Datensätzen, bei denen einige Werte gleich sind

Habe eine neue Antwort begonnen, da ich die erste stark verstümmelt habe.

Es hört sich so an, als könnten Sie das Problem angehen, indem Sie Ihr Tabellendesign ein wenig überdenken, um zu vermeiden, dass Sie durch Brute Force zu einer Einschränkung für die Implementierung Ihrer Geschäftsregel werden.

Wie wäre es, wenn Sie die IsPrimary-Spalte aus MyTable löschen und der anderen Tabelle, die auf die primäre Person verweist, eine PrimaryPersonID-Spalte hinzufügen?

Auf diese Weise würde die Struktur selbst erzwingen, dass 1 und nur 1 Eintrag in der FK-Tabelle für jede Person primär ist.