SQL Server - 根据其他列设置列值

标签 sql sql-server

我有 3 列,Part1Part2OnePiece

Part1 可以分配给 [1,2,3,4,5]。

Part2 可以分配给 [1,2,3,4]。

OnePieceBit类型。

Part1Part2 不能有相同的值,而且如果 Part1 是 5 那么 Part2不能有值。

我想做的是将 OnePiece 设置为 1 并确保 Part2Part1 = 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/

相关文章:

php - PHP MySQL 错误

php - 可以用 MYSQL replace() 吗?

SQL db 和 table 之间的两个连续点

sql - 选择行并更新相同的行以进行锁定?

sql - 寻求 Reporting Services 身份验证建议

sql-server - SQL Server - 事务中一个语句的结果立即对下一个语句可见?

c# - SQL 表上的 XML 读取器返回无效 XML

c# - 当实体的 id 是不同类型(string/int)时,如何创建 CRUD 存储库?

php - 从每种类型中选择 X 项

sql-server - SQL Server 和 REAL 数据类型的舍入问题