>>---EXEC SQL--.------------.--SAVEPOINT-name--.------.-->
               +-AT db_name-+                  +UNIQUE+
 >--.-----------------------------------------------------------.---END-EXEC---><  
    +--ON ROLLBACK RETAIN CURSORS--.----------------------------+
                                   +--ON ROLLBACK RETAIN LOCKS--+
>>---EXEC SQL--.------------.--SAVE-.-TRANSACTION--.--name-- END-EXEC---><  
               +-AT db_name-+       +-TRAN---------+
>>---EXEC SQL--.------------.--RELEASE-.----.-SAVEPOINT-name---END-EXEC---><  
               +-AT db_name-+          +-TO-+
 
               	 | AT db_name | DECLARE DATABASE を使用して宣言されたデータベースの名前。この句は必須ではありません。省略すると、DECLARE CURSOR 文に関連付けられている接続に自動的に切り替わります (その接続が現在の接続とは異なる場合。DECLARE CURSOR 文の実行中のみ有効)。 | 
SQL Server では fire hose カーソルを使用した保存ポイントは許可されないため、次の制約事項が適用されます。
EXEC SQL
   SAVEPOINT SP1
END-EXEC
EXEC SQL
    SAVEPOINT PHASE2 ON ROLLBACK RETAIN CURSORS
END-EXEC 
               	 
説明:
1 つのトランザクションで複数の保存ポイントを定義できます。
一意の名前を使用して保存ポイントを設定し、さらに別の保存ポイントを同じ一意の名前で保存すると、名前を付けたその保存ポイントは現在のトランザクション状態にリセットされます。
保存ポイントにロールバックした後のカーソルとロックの動作は、データベース特有の動作になります。詳細は、データベースのベンダーから提供されるドキュメントを参照してください。