Well, I guess you should be able to get detailed information from BOL. But the difference seems to be quite big. CHECKPOINT forces all dirty pages for the current database and transaction log information to be written to disk. Dirty pages are data or log pages modified after entered into the buffer cache, but the modifications have not yet been written to disk. Whereas, SAVEPOINT mark a point in a transaction to which you may wish to rollback. When you rollback to a savepoint, all of the database updates performed after that savepoint are reversed. Updates that happened after the transaction started but before the savepoint was declared are not affected. You can create multiple savepoints within a single transaction and roll them back individually.