Sql server 有什么好方法可以强制执行非空多对多关系吗?

Sql server 有什么好方法可以强制执行非空多对多关系吗?,sql-server,sql-server-2012,relational-database,Sql Server,Sql Server 2012,Relational Database,例如,有两个表具有多对多关系 create table Item (ID int primary key, .....) create table Category (ID int primary key, ......) 还有一个关系表 create table ItemCategory ( ItemID int not null foreign key references Item (ID), CategoryID int not null foreign key re

例如,有两个表具有多对多关系

create table Item (ID int primary key, .....)
create table Category (ID int primary key, ......)
还有一个关系表

create table ItemCategory (
    ItemID int not null foreign key references Item (ID), 
    CategoryID int not null foreign key references Category (ID) )

是否可以添加约束以确保
至少有一个
类别
?也就是说,对于每个项目,
itemcegory
表中必须至少有一行。

不在表/fk级别


另一种方法是,通过一个存储过程执行所有
插入,该存储过程也会插入到
项类别
,并通过一个存储过程执行所有
项类别
删除,如果它是项的最后一条记录,则不会删除。

更新/插入存储过程很容易被绕过。我想知道是否有任何方法可以使用触发器/规则等强制执行它。