Gib*_*boK 21 sql sql-server check-constraint
我使用SQL Server 2008
我在同一个表中的多个列上使用CHECK CONSTRAINT来尝试验证数据输入.
我收到一个错误:
列'AAAA'的列CHECK约束引用另一列,表'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),
);
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 46
是的,在表级定义CHECK CONSTRAINT
CREATE TABLE foo (
bar int NOT NULL,
fred varchar(50) NOT NULL,
CONSTRAINT CK_foo_stuff CHECK (bar = 1 AND fred ='fish')
)
Run Code Online (Sandbox Code Playgroud)
您将其内联声明为列约束
...
fred varchar(50) NOT NULL CONSTRAINT CK_foo_fred CHECK (...)
...
Run Code Online (Sandbox Code Playgroud)
编辑,比描述更容易发布.修正了你的逗号.
CREATE TABLE dbo.Test
(
EffectiveStartDate dateTime2(2) NOT NULL,
EffectiveEndDate dateTime2(2) NOT NULL, --need comma
CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate) --no comma
);
Run Code Online (Sandbox Code Playgroud)
当然,问题仍然是你使用CHECK约束,它应该是一个FK约束......?
| 归档时间: |
|
| 查看次数: |
40198 次 |
| 最近记录: |