假设我有一个表Level1
:
Id int PK
Deleted bit
和另一个表Level2
:
Id
Level1id
我可以在FK
上添加Level2
,以使Level1id
与Level1.Id
匹配
很好。
但是,如果我要确保INSERTed
中的记录Level2
仅与Level1
中的记录{em>匹配,其中Deleted
位= 0,该怎么办? ?我该怎么办?
我猜想我可能必须编写一个触发器,但是希望有一个更优雅的解决方案...
答案 0 :(得分:0)
我认为这不是很优雅,但是可行。
create table Level1(
Id int not null Primary key,
Deleted bit not null,
constraint u1 unique (Id, Deleted)
);
create table Level2(
Id int ,
Level1id int,
level1Deleted bit default(1) check (level1Deleted=1),
constraint fk1 foreign key (Level1id, level1Deleted) references Level1(Id, Deleted)
);
谨慎使用它,更新level1
会遇到问题。