sql中的真约束
我有一个包含“成绩”和“完成课程”列的表格。我有一个外键约束,它限制了a-F的成绩值。我的问题是:如果完成的课程为真,“成绩”列只能包含a-E,我该如何设置?否则它只能具有值F?您可以为此添加检查约束,如:sql中的真约束,sql,sql-server,sql-server-2008,constraints,Sql,Sql Server,Sql Server 2008,Constraints,我有一个包含“成绩”和“完成课程”列的表格。我有一个外键约束,它限制了a-F的成绩值。我的问题是:如果完成的课程为真,“成绩”列只能包含a-E,我该如何设置?否则它只能具有值F?您可以为此添加检查约束,如: alter table Table1 add constraint CK_Grade check ( (FinishedCourse = 0 and Grade = 'F') or (FinishedCourse = 1 and Grade <>
alter table Table1 add constraint CK_Grade
check (
(FinishedCourse = 0 and Grade = 'F') or
(FinishedCourse = 1 and Grade <> 'F')
-- you can use in ('A', 'B', 'C', 'D'), but since you have foreign key,
-- it's enough to check Grade <> 'F'
)
可以为此添加检查约束,如:
alter table Table1 add constraint CK_Grade
check (
(FinishedCourse = 0 and Grade = 'F') or
(FinishedCourse = 1 and Grade <> 'F')
-- you can use in ('A', 'B', 'C', 'D'), but since you have foreign key,
-- it's enough to check Grade <> 'F'
)
能否将“完成课程”列添加到“外语”的“成绩查找”(我的名字)表中,并使用复合外键约束?e、 g
。。。
外键(成绩,完成课程)引用成绩查找(成绩,完成课程)
…
您需要在
Grade\u Lookup
中添加一条额外的记录来处理Grade=F,Finished\u Course=True。您可以将Finished Course列添加到“foreign”的“Grade\u Lookup”(我的名字)表中并使用复合外键约束吗?e、 g
。。。
外键(成绩,完成课程)引用成绩查找(成绩,完成课程)
…
您需要在Grade\u Lookup
中添加一条额外的记录来处理Grade=F,Finished\u Course=True