1
我有一个包含这样的表:SQL表约束,以防止列总计超过100
- SomeId,诠释PK
- Item1Weighting,诠释
- Item2Weighting,诠释
- Item3Weighting,诠释
我想向表中添加一个约束来防止单个行上三个“加权”列的总数超过总价值为100.
我已经完成了相当多的搜索,找不到任何帮助,因此任何建议都会被感激地收到。
感谢 千电子伏
我有一个包含这样的表:SQL表约束,以防止列总计超过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)
感谢Martin,完美地工作! – kmcoulson
你可以用触发器做到这一点。你使用的是什么DBMS? – Mansfield
你可以定义一个INSERT或UPDATE的触发器来检查它。 –
我正在使用SQL Server – kmcoulson