Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
删除游标当前位置处的数据。
DELETE [ [FROM ]table ] WHERE CURRENT OF cursor-name
cursor-name : identifier | hostvar
table : [ owner.]table-or-view [ [ AS ] correlation-name ]
owner : identifier
table-or-view : identifier
correlation-name : identifier
这种形式的 DELETE 语句用于删除指定游标的当前行。当前行被定义为从游标读取的最后一行。
从中删除行的表由以下确定:
如果不包括 FROM 子句,则游标必须仅在一个表中。
如果游标用于连接式查询(包括使用含有连接的视图),则必须使用 FROM 子句。只会删除指定表的当前行,连接中涉及的其它表不会受到影响。
如果包括 FROM 子句,则 table 必须明确标识游标中的可更新表。如果指定了 correlation-name,服务器会尝试将该相关名与在基础游标中指定的相关名相匹配。如果未在 DELETE 语句中指定相关名,并且未指定表所有者,则服务器尝试将 table-or-view 和基础游标中的可更新表相匹配。首先依据相关名匹配 table-or-view。
如果基础游标中已有相关名,则 table-or-view 可能与相应相关名相匹配。
如果相关名不存在,则 table-or-view 必须明确匹配游标中的表名。
如果包含 FROM 子句并且指定了表所有者,则 table 必须明确匹配基础标识中的可更新表。
已定位的 DELETE 语句可以用于在某视图上打开的游标,只要该视图可更新即可。
您必须是表所有者,或者对表具有 DELETE 特权。
无。
SQL/2008 DELETE 语句(定位)是 SQL/2008 标准的核心功能。能够在嵌入式 SQL 程序中使用定位 DELETE 语句是可选 SQL 语言功能 B031 "基本动态 SQL" 的一部分。
在 SQL/2008 中必须使用 FROM 关键词,但它在 SQL Anywhere 中可选。如果 ansi_update_constraints 选项设置为 Off,则可更新的游标的范围可能包含服务商扩充。
下面的语句从数据库中删除游标 cur_employee 中的当前行。
DELETE WHERE CURRENT OF cur_employee;