表中有A,B,C三列,如何建立下列约束:当A列不为null时,C列也不能为null?求大家帮忙!!谢谢!

解决方案 »

  1.   

    CHECK (NOT (A IS NOT NULL AND C IS NULL))
      

  2.   

    create table tablename(
    A 类型 not null,
    B 类型,
    C 类型 not null
    )
      

  3.   


    错了,没注意是A不为空时B也不为空检查约束check(not (A is not null and C is not null))
      

  4.   

    CREATE TABLE TESTA
    (
    A INT,
    B INT,
    C INT,
    CHECK (NOT (A IS NOT NULL AND C IS NULL))
    )
    GO
    INSERT TESTA VALUES(NULL,1,1)
    GO
    INSERT TESTA VALUES(1,1,NULL)
    出错:
    消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 CHECK 约束"CK__TESTA__7193879D"冲突。该冲突发生于数据库"NIDC",表"dbo.TESTA"。
    语句已终止。
    GODROP TABLE TESTA
    GO