SQL Server with Mr. Denny

Sep 24 2009   11:00AM GMT

Understanding what the WITH ROLLBACK IMMEDIATE does

Denny Cherry Denny Cherry Profile: Denny Cherry

Based on some questions on forums and some of the responses that people have been giving there appears to be done misunderstanding about what the WITH ROLLBACK IMMEDIATE option does when added to the ALTER DATABASE command.  My goal here is to try and clear up at least some of the confusion.

When you run the ALTER DATABASE command without a termination clause (ROLLBACK AFTER, ROLLBACK IMMEDIATE, NO_WAIT) the ALTER DATABASE command will run until the command completes, or until if command is terminated.

The ROLLBACK AFTER command tells the SQL Server to cancel any pending transactions and rollback those transactions after N number of seconds.

ALTER DATABASE YourDatabase
...
WITH ROLLBACK AFTER 30

The ROLLBACK IMMEDIATE command tells the SQL Server that if it can’t complete the command right away, then the other pending transactions should be rolled back.

The NO_WAIT command has the opposite effect as ROLLBACK IMMEDIATE.  If the ALTER DATABASE transaction can’t be completed then that transaction is terminated.

ALTER DATABASE YourDatabase
...
WITH NO_WAIT

Hopefully this helps clear up some of the confusion.

Denny

4  Comments on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
  • Jameslean
    The NO_WAIT command has the same effect as ROLLBACK IMMEDIATE. I don't think this is correct. WITH ROLLBACK AFTER | IMMEDIATE specifies when any [B]other[/B] transactions in the database should be rolled back, eg when setting the db to single user mode. NO_WAIT specifies that if the ALTER DATABASE command cannot complete, ie other open transactions exist, then the ALTER command itself should rollback/fail.
    0 pointsBadges:
    report
  • Jameslean
    NB, the first line in my above post is the quote that I don't think is correct!
    0 pointsBadges:
    report
  • Denny Cherry
    I'm not sure how I managed to get that so wrong. I've updated the blog post so that it's correct.
    66,185 pointsBadges:
    report
  • Fhhdjfhjdhfjhjdfh
    HI, when i run the command alter database northwind set multi_user with rollback immediate the northwind database shows ACCESS denied and tagged as SINGLE USER i donot understand why it so .can u pls explain .
    135 pointsBadges:
    report

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to: