检查所有三列是否为null或null

时间:2015-04-24 11:34:19

标签: sql sql-server null sql-server-2012 check-constraints

我有一个包含4列的表格:

    <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Vazhdo"
    android:id="@+id/VazhdoButoni"
    android:layout_gravity="center_horizontal|bottom"
    android:layout_marginBottom="340dp"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="50dp" />

如何确保create table dbo.Table ( Id int not null, A int null, B int null, C nvarchar (4000) null ) AB全部为三个C或全部三个null

2 个答案:

答案 0 :(得分:13)

您可以设置check constraint

constraint [check_abc] check ( ([A] is null and [B] is null and [C] is null) or
                               ([A] is not null and [B] is not null and [C] is not null) )

答案 1 :(得分:1)

您可能还会考虑将这些相关列分解到第二个表中,在这个表中声明它们not null并仅在它们应用的位置插入一行。

create table dbo.Table1( 
  Id int not null primary key
)


create table dbo.Table2( 
  Id int not null primary key references Table1,
  A int not null,
  B int not null,   
  C nvarchar (4000) not null
)