2016-03-23 21 views
0

...チェック制約

  1. モジュール(ModuleIDは、ModuleTitle、ModuleLeader、クレジット、 CourseworkPercentage、ExamPercentage)

  2. シーケンスによって生成される

  3. ModuleTitleとModuleLeaderは最大30文字で、 はnullでないはずです。
  4. クレジットがnullでないことや10、20または40
  5. CourseworkPercentageとExamPercentageは100

まで追加すべきである必要があり、私は成功しポイント2,3,5を持っていますが、私は4わからないとの問題を抱えていますどのように私は10,20または40のいずれかに等しいと言うチェック制約を書くことができる。 任意の助けをいただければ幸いです。

答えて

4

試してください: -

CHECK(Credits IS NOT NULL AND Credits IN (10,20,40)) 

NOT NULL条件が重複している列には、10,20または40、それらのすべてがNULLではない、との条件がちょうどに簡略化することが可能である必要があります。

CHECK(Credits IN (10,20,40)) 
0

は、それは最初に冗長になるNULLをチェックするように見えますが、私は最近、manual

で再見を持つことが求められます別の postに出くわしました

[...]検査制約を使用すると、表の各行が満たす必要のある条件を指定できます。制約を満たすために、テーブルの各行は、(原因nullに)条件がTRUEまたは未知のいずれかにする必要があります。[...]

だから私は、あなたがより良いユーザー

CHECK(Credits IS NOT NULL AND Credits IN (10,20,40)) 
示唆