gpt4 book ai didi

Sql Server - 约束 - 仅当 B 列为空时才允许设置 A 列,反之亦然

转载 作者:行者123 更新时间:2023-12-04 18:23:42 24 4
gpt4 key购买 nike

有没有办法在 SQL Server 2008 中添加一个约束来验证如果用户尝试在 A 列中输入一个值,它只能在 B 列为空时才可以,反之亦然

例子

  • 如果 A 为 NULL,B 可以有一个值
  • 如果 B 是 NULL,A 可以有一个值
  • A 和 B 不能同时有值
  • 最佳答案

    像这样的东西:

    ALTER TABLE foo WITH CHECK ADD
    CONSTRAINT CK_Foo_reason CHECK (
    ColA IS NOT NULL AND ColB IS NULL
    OR
    ColA IS NULL AND ColB IS NOT NULL
    )

    编辑:问题更新后

    这取决于在这种情况下是否允许两列都为 NULL
            ColA IS NULL OR ColB IS NULL

    编辑 2:对于 3 列,其中之一必须是 NOT NULL

    恐怕没有聪明的人回答。我添加了空格以希望让它更清晰
    ALTER TABLE foo WITH CHECK ADD
    CONSTRAINT CK_Foo_reason CHECK (
    ColA IS NOT NULL AND ColB IS NULL AND ColC IS NULL
    OR
    ColA IS NULL AND ColB IS NOT NULL AND ColC IS NULL
    OR
    ColA IS NULL AND ColB IS NULL AND ColC IS NOT NULL
    )

    关于Sql Server - 约束 - 仅当 B 列为空时才允许设置 A 列,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3249511/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com