2013-11-14 71 views
0

我的RelationshipCodeLookup表使用AgentTransmission表的主鍵字段作爲外鍵。 RelationshipCodeLookup表中只能有5條記錄,主鍵與AgentTransmission相同。複合鍵字段的數字限制

是否可以在RelationshipCodeLookup上創建一個複合關鍵字,其中包括來自AgentTransmission的外鍵和單獨的int字段,該關鍵字只能達到5?例如,對於一個代理記錄的完整組將是:

FK CK 
132 1 
132 2 
132 3 
132 4 
132 5 

如果另一個記錄是試圖用132FK加入,在桌子上的某種約束會被侵犯,記錄無法被添加。

這可能嗎?

回答

1

如果我正確理解你的問題,我認爲CK列上的一個簡單的檢查約束將做你所需要的。 Check約束要求CK列中的值在指定的範圍內(1到5)。

CREATE TABLE RelationshipCodeLookup(
    FK INT NOT NULL, 
    CK INT NOT NULL, 
    CONSTRAINT PK_RelationshipCodeLookup PRIMARY KEY CLUSTERED (FK, CK) 
); 
ALTER TABLE RelationshipCodeLookup WITH CHECK ADD CONSTRAINT CK_RelationshipCodeLookup CHECK (CK>=1 AND CK<=5); 
ALTER TABLE RelationshipCodeLookup CHECK CONSTRAINT CK_RelationshipCodeLookup;