ROLLBACK TRANSACTION statement [T-SQL]

Description

Cancels any changes made since a SAVE TRANSACTION.

Syntax

ROLLBACK TRANSACTIONsavepoint-name ]

Examples

Example 1

This example returns five rows with values 10, 20, and so on. The effect of the DELETE, but not the prior INSERTs or UPDATE, is undone by the ROLLBACK TRANSACTION statement.

BEGIN
     SELECT row_num INTO #tmp 
     FROM sa_rowgenerator( 1, 5 ) 
     UPDATE #tmp SET row_num=row_num*10
     SAVE TRANSACTION before_delete
     DELETE FROM #tmp WHERE row_num >= 3
     ROLLBACK TRANSACTION before_delete
     SELECT * FROM #tmp
END

Usage

ROLLBACK TRANSACTION undoes any changes that have been made since a savepoint was established using SAVE TRANSACTION. Changes made prior to the SAVE TRANSACTION are not undone; they are still pending.

The savepoint-name is an identifier that was specified on a SAVE TRANSACTION statement within the current transaction. If savepoint-name is omitted, all outstanding changes are rolled back. Any savepoints since the named savepoint are automatically released.

Standards

Permissions

There must be a corresponding SAVE TRANSACTION within the current transaction.

See also

“BEGIN TRANSACTION statement [T-SQL]”

“SAVE TRANSACTION statement [T-SQL]”

See "ROLLBACKTRANSACTION statement [T-SQL]" in SQL Anywhere Server – SQL Reference