0

我是 StackOverflow 的新手,这是我在论坛上的第一个问题。

我正在尝试在 MS SQL Server 2008 中创建一个表,该表具有一个约束,该约束根据同一个表中另一个字段的内容使字段成为可选或必需。

这是我到目前为止的代码......

CREATE TABLE COURSE (
C# INT,
NAME VARCHAR(20) ,
CREDIT TINYINT,
DESCRIPTION VARCHAR(60) NOT NULL,
PREREQUISITE VARCHAR(60),
CONSTRAINT PK_COURSE PRIMARY KEY (C#)
CONSTRAINT CK_CREDIT CHECK (CREDIT IN (1,2,3,4,5)),
CONSTRAINT UC_NAME UNIQUE(NAME),  ...

这是条件:PREREQUISITE 可以为空,除非 C# > 3000,然后 PREREQUISITE 不能为空。我一直在拔头发,试图让它发挥作用。

感谢您的帮助!

4

1 回答 1

2
,
CONSTRAINT CK_CN_PREREQ
  CHECK (([C#] > 3000 AND PREREQUISITE IS NOT NULL) OR ([C#] <= 3000))

C#顺便说一句,这是一个糟糕的列名。

于 2013-11-11T21:02:47.363 回答