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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » 使用 SQL 进行应用程序开发 » 游标原则

 

用于修改行的游标

游标的用途不仅仅是读取查询的结果集。您还可以在处理游标时修改数据库中的数据。这些操作通常称为定位插入、更新和删除操作,或者如果操作是插入操作,则称为 PUT 操作。

并非所有的查询结果集都允许定位更新和删除。如果您在不可更新的视图上执行查询,则基础表不会发生更改。此外,如果查询涉及连接,则必须指定您希望从哪一个表删除,或者您希望更新哪些列,何时执行操作。

只有在表中的某些非插入列允许 NULL 或有缺省值的情况下,才能通过游标执行插入。

将多行插入对值敏感的游标(由键集决定的游标)时,新插入的行出现在游标结果集的末尾处。即使这些行与查询的 WHERE 子句不匹配,或者 ORDER BY 子句通常将它们放置在结果集的其它位置,这些行也会出现在最后。此行为与编程接口无关。例如,当使用嵌入式 SQL PUT 语句或 ODBC SQLBulkOperations 函数时就会是这样。通过选择游标中的最后一行,可以找到最新插入行的 AUTOINCREMENT 列的值。例如,在嵌入式 SQL 中,可以使用 [FETCH ABSOLUTE -1 cursor-name] 来获取该值。此行为的结果是,对值敏感的游标的首次多行插入的开销会很大。

ODBC、JDBC、嵌入式 SQL 和 Open Client 允许使用游标进行数据操作,但 ADO.NET 不允许。对于 Open Client,您可以删除和更新行,但您只能在单表查询上插入行。

 可以从哪个表中删除行?
 另请参见