Of course, you can use explicit transactions such as
BEGIN TRAN UPDATE ... ROLLBACK
but I donβt think you are asking about this?
If you have the SET IMPLICIT_TRANSACTIONS ON option, then the command will not be committed or rolled back until you do it explicitly, but this is not the default behavior.
By default, transactions are automatically committed, so when the command completes successfully, the update results will be committed. If an error occurs in the update - including the connection that was killed in the middle of the update, it will automatically roll back.
source share