SQL Anywhere provides several extensions that allow updates that are not permitted by the ANSI SQL standard. These extensions
provide powerful, efficient mechanisms for performing updates. However, they may cause unexpected behavior. This behavior
can produce anomalies such as lost updates if the user application is not designed to expect the behavior of these extensions.
The ansi_update_constraints option controls whether updates are restricted to those permitted by the SQL/2008 standard.
If the option is set to Strict, the following updates are prevented:
Updates of cursors containing JOINS
Updates of columns that appear in an ORDER BY clause
The FROM clause is not allowed in UPDATE statements
If the option is set to Cursors, these same restrictions are in place, but only for cursors. If a cursor is not opened with
FOR UPDATE or FOR READ ONLY, the database server chooses updatability based on the SQL/2008 standard. If the ansi_update_constraints
option is set to Cursors or Strict, cursors containing an ORDER BY clause default to FOR READ ONLY; otherwise, they continue
to default to FOR UPDATE.
For ODBC, JDBC, ADO.NET, and OLE DB, statement updatability is explicitly READ ONLY.
For embedded SQL, statement updatability is explicitly READ ONLY unless the SQL preprocessor -m HISTORICAL option is specified.
By default, stored procedure cursors are not explicitly FOR UPDATE or READ ONLY.