0

RelationshipCodeLookupのテーブルは、テーブルの主キー フィールドを外部キーとして使用しAgentTransmissionます。同じ主キーRelationshipCodeLookupを持つテーブルには5 つのレコードしか存在できません。AgentTransmission

RelationshipCodeLookupからの外部キーAgentTransmissionと最大 5 までの別のintフィールドを含む複合キーを作成することは可能ですか? たとえば、1 つのエージェントのレコードの完全なグループは次のようになります。

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

FKofを使用して別のレコードを追加しようとすると132、テーブルの何らかの制約に違反し、レコードを追加できなくなります。

これは可能ですか?

4

1 に答える 1

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;
于 2013-11-14T17:34:33.223 に答える