我想在我的数据库表上强制执行业务规则,以确保如果表已包含符合特定条件的行,则无法插入行。
想要使用CHECK约束,但怀疑这可能必须通过触发器完成。
有没有办法通过CHECK约束来做到这一点? OR是否有另一种方法在数据库级别执行此操作而不使用触发器?
答案 0 :(得分:2)
根据您的具体条件(尚未分享),您可以unique filtered index.
这通常比功能或其他解决方法更快。
一般格式为:
CREATE UNIQUE NONCLUSTERED INDEX ix_IndexName ON MyTable (FieldstoIndex)
WHERE <filter to only include certain rows>