10列のテーブルがありますが、これには3列しかありません。テーブルが次のようになっていると想像してください。
CREATE TABLE MyTable ( RowID int IDENTITY(1,1), UserID int, NodeID int, RoleID int )
私が必要としているのは、次のことを強制する制約です: UserID と RoleID は NodeID ごとに一意である必要があります (つまり、ユーザーは複数のノードで同じロールを持つことはできません)。つまり許可したい
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 1, 1
しかし許さない
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 2, 1
最初の挿入が発生した場合は、ユーザーが複数のノードでロールを持つことになるためです。
うまくいけば、これは単純で、頭の中で必要以上に複雑にしているだけです。