我有一个表,其中包含这样的列:
- SomeId,诠释 PK
- Item1Weighting, Int
- Item2Weighting, Int
- Item3Weighting, Int
我想向表中添加一个约束,以防止单行上三个“加权”列的总和超过 100。
我已经进行了很多搜索,但找不到任何帮助,因此我们将不胜感激地收到任何建议。
谢谢凯夫
我有一个表,其中包含这样的列:
我想向表中添加一个约束,以防止单行上三个“加权”列的总和超过 100。
我已经进行了很多搜索,但找不到任何帮助,因此我们将不胜感激地收到任何建议。
谢谢凯夫
您可以以声明方式执行此操作,而无需使用触发器。
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)