小编Joh*_*ohn的帖子

PRIMARY KEY 约束(带有 NONCLUSTERED INDEX)可以只检查某些值吗?

我可以设置一个(逻辑)PRIMARY KEY 约束,由(物理)NONCLUSTERED INDEX 提供服务,以便它只检查相关表中受约束和索引列另一列的某些值?

并且,如果是这样,该列是否可以建立为从其他表引用的 FOREIGN KEY 约束?

我试图基本上看看我是否可以从表中删除某些行而不从表中删除这些行,但仍然强制执行关系,例如:

  • IDs > 1000, 或者
  • CreatedDateTime > RemovalDate.

例如,你可以有这样的约束:

ALTER TABLE MyTable WITH NOCHECK ADD 
    CONSTRAINT PK_MyTable CHECK (Id > 1000)
Run Code Online (Sandbox Code Playgroud)

但是您将如何将此列设置为用 NONCLUSTERED INDEX 固定的 PRIMARY KEY 呢?

我可以做类似以下定义的事情吗:

ALTER TABLE MyTable WITH NOCHECK ADD 
    CONSTRAINT PK_MyTable CHECK (CreatedOn > '01/01/2010')
Run Code Online (Sandbox Code Playgroud)

但是对于名为Id?的列有一个 INDEX

sql-server-2008 database-design sql-server nonclustered-index check-constraints

3
推荐指数
2
解决办法
772
查看次数