Difference between revisions of "SAVEPOINT"

From Recital Documentation Wiki
Jump to: navigation, search
 
Line 15: Line 15:
  
 
==See Also==
 
==See Also==
[[SQL BEGIN TRANSACTION|BEGIN TRANSACTION]], COMMIT, [[SQL END TRANSACTION|END TRANSACTION]], [[ROLLBACK]], [[SAVE TRANSACTION]], [[SET TRANSACTION]], [[TXNISOLATION()]], [[TXNLEVEL()]]
+
[[SQL BEGIN TRANSACTION|BEGIN TRANSACTION]], [[COMMIT]], [[SQL END TRANSACTION|END TRANSACTION]], [[ROLLBACK]], [[SAVE TRANSACTION]], [[SET TRANSACTION]], [[TXNISOLATION()]], [[TXNLEVEL()]]
  
  

Revision as of 15:40, 19 March 2009

SAVEPOINT

Class

SQL Applications


Purpose

Identifies a stage within a transaction which can subsequently be used as ROLLBACK point.


Syntax

SAVEPOINT <savepoint>


See Also

BEGIN TRANSACTION, COMMIT, END TRANSACTION, ROLLBACK, SAVE TRANSACTION, SET TRANSACTION, TXNISOLATION(), TXNLEVEL()


Description

The SAVEPOINT statement identifies a stage within a transaction which can subsequently be used as ROLLBACK point. The name of the savepoint is specified in <savepoint>.

Issuing the SAVEPOINT <savepoint> statement causes the TXNLEVEL() to increase by 1. If the transaction is rolled back to the <savepoint> using the ROLLBACK command, the TXNLEVEL will decrease by 1 and a partial rollback of the transaction will be carried out. Changes made since the specified <savepoint> was declared are discarded and the transaction continues from the <savepoint>.

A transaction is a sequence of SQL statements that Recital treats as a single unit. A transaction begins with the first executable SQL statement after a BEGIN TRANSACTION. A transaction ends with a COMMIT, ROLLBACK or END TRANSACTION.


Example

// config.db
set sql to recital
set sql on
// end of config.db
 
// SAVEPOINT <savepoint> 
BEGIN TRANSACTION parent_and_child;
INSERT INTO customer
(TITLE, LAST_NAME, FIRST_NAME, INITIAL, STREET,
CITY, STATE, ZIP,LIMIT, START_DATE)
VALUES
('Ms', 'Jones', 'Susan', 'B', '177 High Street', 'Beverly', 'MA', '01915', 2000, date());
SAVEPOINT parent_added;
INSERT INTO accounts (ORD_VALUE) VALUES (30);
ROLLBACK TRANSACTION parent_added;
END TRANSACTION;
// End of program


Products

Recital Database Server, Recital Mirage Server, Recital Terminal Developer