我有一个10列的表,但只关心这3列。想象一下,我的表是这样的:复杂的多列唯一约束
CREATE TABLE MyTable (RowID int IDENTITY(1,1), UserID int, NodeID int, RoleID int)
我需要的是一个能够执行下列约束:用户ID和角色ID必须为每个节点ID是唯一的(即用户不能在多个节点的相同角色)。换句话说,我想允许
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 1, 1
但不允许
INSERT MyTable (UserID, NodeID, RoleID) SELECT 1, 2, 1
如果第一次插入已经发生,因为这会导致在具有多个节点一个角色的用户。
希望这很简单,我只是把它比它需要在我的脑中更复杂。
INSERT MyTable(UserID,NodeID,RoleID)SELECT 1,2,2? – bummi
我很好,用户在两个不同的节点有两个不同的角色,这样就可以了。好问题。 :) – influent
那么你不是在寻找唯一的UserID + RoleID? – kgu87