【发布时间】:2010-08-09 07:24:12
【问题描述】:
我使用 SQL Server 2008
我在同一个表中的多个列上使用 CHECK CONSTRAINT 来尝试验证数据输入。
我收到一个错误:
列的 CHECK 约束 'AAAA' 引用另一列, 表'XXXX'。
CHECK CONSTRAINT 不能以这种方式工作。
还有其他方法可以在不使用 FK 的情况下在单个表上实现吗?
谢谢
这是我的代码示例
CREATE TABLE dbo.Test
(
EffectiveStartDate dateTime2(2) NOT NULL,
EffectiveEndDate dateTime2(2) NOT NULL
CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate),
);
【问题讨论】:
-
为什么“没有 FK”?外键设计是为了链接两个表 - 这是他们的核心能力,他们的工作,他们存在的理由 - 为什么不使用 FK,而这实际上是 FK 的工作???
-
我将代码添加到我的问题中,希望现在更有意义。
标签: sql sql-server check-constraint