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