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

时间:2011-12-05 15:19:32

标签: sql sql-server-2005 sql-server-2008

我想在我的数据库表上强制执行业务规则,以确保如果表已包含符合特定条件的行,则无法插入行。

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

有没有办法通过CHECK约束来做到这一点? OR是否有另一种方法在数据库级别执行此操作而不使用触发器?

1 个答案:

答案 0 :(得分:2)

根据您的具体条件(尚未分享),您可以unique filtered index.

这通常比功能或其他解决方法更快。

一般格式为:

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