SQL SERVER检查约束—查询其他行



我想在我的数据库表上执行一个业务规则,以确保如果表中已经包含满足特定条件的行,则不能插入一行。

想要使用CHECK约束,但怀疑这可能必须通过触发器来完成。

是否有一种方法可以通过CHECK约束来做到这一点?或者在不使用触发器的情况下,是否有另一种方法在数据库级别做到这一点?

根据您的特定标准(您还没有共享的标准),您可以创建唯一的过滤索引。

这通常比函数或其他解决方法快。

一般格式为:

CREATE UNIQUE NONCLUSTERED INDEX ix_IndexName ON MyTable (FieldstoIndex)
WHERE <filter to only include certain rows>

最新更新