Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

DELETE(定位)语句 [ESQL] [SP]

此语句用于从游标的当前位置删除数据。

语法
DELETE [ FROM table-spec ] WHERE CURRENT OF cursor-name
cursor-name :  identifier | hostvar
table-spec : [ owner.]correlation-name
owner : identifier
注释

这种形式的 DELETE 语句用于删除指定游标的当前行。当前行被定义为从游标读取的最后一行。

从中删除行的表由以下确定:

  • 如果不包括 FROM 子句,则游标必须仅在一个表中。

  • 如果游标用于连接式查询(包括使用含有连接的视图),则必须使用 FROM 子句。只会删除指定表的当前行,连接中涉及的其它表不会受到影响。

  • 如果包含 FROM 子句但未指定表所有者,则 table-spec 首先与任何相关名进行匹配。

    • 如果已有相关名,则 table-spec 以该相关名标识。

    • 如果相关名不存在,则 table-spec 必须可明确标识为游标中的表名。

  • 如果包含 FROM 子句并且指定了表所有者,则 table-spec 必须可明确标识为游标中的表名。

  • 已定位的 DELETE 语句可以用于在某视图上打开的游标,只要该视图可更新即可。

权限

必须有游标中使用的表的 DELETE 权限。

副作用

无。

另请参见
标准和兼容性
  • SQL/2003   核心特性。如果 ansi_update_constraints 选项设置为 Off,则可更新的游标的范围可能包含服务商扩充。

示例

下面的语句从数据库中删除当前行。

DELETE
WHERE CURRENT OF cur_employee;