我有 3 列,Part1
、Part2
和 OnePiece
。
Part1
可以分配给 [1,2,3,4,5]。
Part2
可以分配给 [1,2,3,4]。
OnePiece
是Bit
类型。
Part1
和 Part2
不能有相同的值,而且如果 Part1
是 5 那么 Part2
不能有值。
我想做的是将 OnePiece
设置为 1 并确保 Part2
在 Part1
= 5 时不接受任何值.
我该怎么做?
我会进一步澄清我的要求。
列 OnePiece
是一个标志,它是自动计算的,如果 Part1
= 5,则设置为 1,至于 Part2
它可以'如果 Part1
= 5,则不要设置为任何值。
原因是当 Part1
= 5 时,这意味着它是单件产品,因此没有 Part2
并且不得允许任何其他值。
所以我猜这会让它成为两件事;触发器和检查约束。我希望我提供了更多详细信息。
最佳答案
当 OnePiece
为 1 且 Part5
为 5 时,以下是禁止 Part2
中的值的检查约束:
alter table YourTable add constraint CHK_YourTable
check (OnePiece <> 1 or Part1 <> 5 or Part2 is null)
关于SQL Server - 根据其他列设置列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460150/