1

我有一个表,其中包含这样的列:

  • SomeId,诠释 PK
  • Item1Weighting, Int
  • Item2Weighting, Int
  • Item3Weighting, Int

我想向表中添加一个约束,以防止单行上三个“加权”列的总和超过 100。

我已经进行了很多搜索,但找不到任何帮助,因此我们将不胜感激地收到任何建议。

谢谢凯夫

4

1 回答 1

1

您可以以声明方式执行此操作,而无需使用触发器。

CREATE TABLE T
(
SomeId  Int PRIMARY KEY,
Item1Weighting  Int,
Item2Weighting  Int,
Item3Weighting  Int,
CONSTRAINT CK_WeightingNotOver100 
    CHECK ((ISNULL(Item1Weighting,0) + 
            ISNULL(Item2Weighting,0) + 
            ISNULL(Item3Weighting,0)) <= 100)
)

或者将其追溯添加到现有表中

ALTER TABLE T
ADD CONSTRAINT CK_WeightingNotOver100 
    CHECK ((ISNULL(Item1Weighting,0) + 
            ISNULL(Item2Weighting,0) + 
            ISNULL(Item3Weighting,0)) <= 100)
于 2013-08-28T12:35:48.827 回答