非 CURRENT 形式的 UPDATE 语句的用法,还挺实用的,尤其是在批量更新的时候。你也遇到过,要给某门课程的所有学生成绩统一加分,这种时候用Grade = Grade + :Raise这种写法就比一条条 UPDATE 省事多了。

EXEC SQL UPDATE语句写法也比较清晰:

EXEC SQL UPDATE SC 
SET Grade = Grade + :Raise 
WHERE Cno = '1';

重点在那个:Raise主变量,用起来和你在 C 语言里传值差不多,数据动态灵活,改起来方便。

要是你还没搞清楚CURRENT和非CURRENT的区别,可以翻翻这篇非 CURRENT 形式的 UPDATE 语句 SQL 课件,讲得还蛮细的。

顺带一提,SQL 语言基础使用主变量进行非 CURRENT 形式的 UPDATE 语句这篇也挺不错,主变量和绑定变量怎么讲得清楚。

还有几个实用资源也可以看看,比如: UPDATE 语句的 Transact-SQL 写法非最新形式的更新语句续写UPDATE 语句基础语法解析,都比较适合补基础。

如果你刚好在做数据库课程设计,或者维护老 SQL 代码,用这个方式更新语句,会省多事,逻辑也更清晰。