Sql 更新另一列时,检查某列是否包含某个值

Sql 更新另一列时,检查某列是否包含某个值,sql,constraints,check-constraint,Sql,Constraints,Check Constraint,在更新表行中另一列的值之前,我很难找到一种简单的方法来检查一列是否包含某个值。例如,如果我有如下表StudentsParticipationInClass | ID | Grade | State | | 1 | 'U' |'OnGoing'| | 2 | '3' | 'Done' | |ID |等级|状态| |1 |“U”|“进行中”| |2 |“3”|“完成”| 我想要一个约束,告诉用户,为了能够更新状态以完成评分,评分必须不是'U'

在更新表行中另一列的值之前,我很难找到一种简单的方法来检查一列是否包含某个值。例如,如果我有如下表StudentsParticipationInClass

| ID | Grade | State | | 1 | 'U' |'OnGoing'| | 2 | '3' | 'Done' | |ID |等级|状态| |1 |“U”|“进行中”| |2 |“3”|“完成”|
我想要一个约束,告诉用户,为了能够更新状态以完成评分,评分必须不是'U'或NULL

此查询可能会帮助您:


更新StudentsParticipationInClass
设置状态=‘完成’
其中“U”级
其中等级不为空
其中ID=1

我建议您在应用程序代码中添加一些逻辑,以便只显示允许更新的记录。我希望它处于数据库级别,这样,如果将来开发另一个程序,它就不必将该逻辑添加到其中。这是SQL->
等级吗!='U'
我不希望它出现在更新查询中,我希望它作为检查约束,这样您就不必在以后创建的每个更新语句中担心它on@Nadeem_MK,在SQL的某些版本中
=,但是的,
似乎更好。编辑了我的答案。