非 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 代码,用这个方式更新语句,会省多事,逻辑也更清晰。