Whenever you roll back a transaction, it nullifies the effect of every command you’ve executed since
you started the transaction. But what happens if you want to roll back only part of an ongoing transaction?
SQL Server handles this with a feature called savepoints.
Savepoints are markers that act like bookmarks. You mark a certain point in the flow of the transaction,
and then you can roll back to that point. You set the savepoint using the Transaction.Save()
method. Note that the Save() method is available only for the SqlTransaction class, because it’s not
part of the standard IDbTransaction interface.