我有一个包含这样的列的表:
我想在表格中添加一个约束,以防止单行上三个“加权”列的总和超过总值100。
我已经做了很多搜索,找不到任何帮助,所以我会非常感激地收到任何建议。
由于 千电子伏
答案 0 :(得分: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)