检查所有三列是否不为空或为空
Check if all three columns are either not null or null
我有一个包含 4 列的 table:
create table dbo.Table (
Id int not null,
A int null,
B int null,
C nvarchar (4000) null
)
如何确保 A
、B
和 C
都是三个 null
或三个 not null
?
你可以设置一个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) )
您也可以考虑将这些相关的列分解到第二个 table 中,在其中声明它们 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
)
我有一个包含 4 列的 table:
create table dbo.Table (
Id int not null,
A int null,
B int null,
C nvarchar (4000) null
)
如何确保 A
、B
和 C
都是三个 null
或三个 not null
?
你可以设置一个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) )
您也可以考虑将这些相关的列分解到第二个 table 中,在其中声明它们 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
)