```sql SQL> INSERT INTO books VALUES ('ADV112', 'Adventures of Tom Sawyer', null, null); 1 row created.
SQL> SAVEPOINT A; Savepoint created.
SQL> DELETE FROM books; 101 rows deleted.
SQL> ROLLBACK TO SAVEPOINT A; Rollback complete.
SQL> ROLLBACK; Rollback complete. ```
下列哪项陈述是正确的?
A) 第一次回滚恢复了被删除的100行记录,第二次回滚仅提交更改。
B) 两次回滚命令都恢复了被删除的101行记录。
C) 第一次回滚恢复了被删除的101行记录,第二次回滚导致插入的行被删除,并提交了更改。
D) 两次回滚命令都恢复了被删除的100行记录。
**答案:C**
**解析:** 本题考察的是回滚操作的理解。在SQL中,`SAVEPOINT`用于标记事务中的一个点,之后可以通过`ROLLBACK TO SAVEPOINT`撤销从该点开始的所有更改。第一次`ROLLBACK TO SAVEPOINT A`恢复了所有被删除的记录,包括最初插入的那一行。第二次`ROLLBACK`则撤销了所有未提交的更改,包括最初插入的那条记录。