此语句用于从游标的当前位置删除数据。
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/92 初级特性。如果 ANSI_UPDATE_CONSTRAINTS 选项设置为 OFF,可以更新的游标的范围可能包含供应商扩展。
SQL/99 核心特性。如果 ANSI_UPDATE_CONSTRAINTS 选项设置为 OFF,可以更新的游标的范围可能包含供应商扩展。
Sybase Open Client/Open Server 支持使用嵌入式 SQL。仅在 Adaptive Server Anywhere 中支持使用过程和触发器。
下面的语句从数据库中删除当前行。
DELETE WHERE CURRENT OF cur_employee
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。