update-子句

UPDATE 子句标识可在后续定位 UPDATE 语句中的赋值子句中显示为目标的列。 每个 column-name 都必须是未限定的,并且必须标识全查询的第一个 FROM 子句中标识的表或视图的列。 如果全查询的结果表是只读的,那么不得指定该子句。

读取语法图跳过可视语法图FOR UPDATEOF,列名

如果使用 column-name 列表指定 UPDATE 子句,并且未启用扩展指示符,那么 column-name 必须是可更新的列。

如果在未指定 column-name 列表的情况下指定 UPDATE 子句,那么将按如下所示确定隐式 column-name 列表:
  • 如果启用了扩展指示符,那么将在全查询的第一个 FROM 子句中标识表或视图的所有列。
  • 否则,将在全查询的第一个 FROM 子句中标识表或视图的所有可更新列。
如果未在 select-statement 中指定 UPDATE 子句,并且其结果表不是 只读,那么将生成隐式 UPDATE 子句。 隐式 column-name 列表按如下所示确定:
  • 如果启用了扩展指示符,那么将包括全查询的第一个 FROM 子句中标识的表或视图的所有列。
  • 否则,将包括全查询的第一个 FROM 子句中标识的表或视图的所有可更新列。

如果全查询的结果表是只读的 (有关更多信息,请参阅 DECLARE CURSOR) 或如果使用 FOR READ ONLY 子句,那么不得指定 UPDATE 子句。

使用 UPDATE 子句时,引用游标的 FETCH 操作将获取互斥行锁定。