0

WHILE Statements

Posted by Danielle Smith on 11:20 in ,
Good morning guys! Hope you all had a lovely weekend!

Today's SQL blog post is going to discuss WHILE Statements in SQL and how they can be used as a method of looping through and controlling the flow of your transaction statements.

What is a WHILE loop?

A WHILE loop is a function in programming that allows a statement to be repeated based on specific conditions. The code inside the body of the loop will be repeated continuously while the condition is being met however once the condition is no longer met, the transactional flow will break out of the loop and the rest of the code after the WHILE loop has ended will be executed.

An example of a simple WHILE loop in SQL is displayed below:


To give a better understanding on how WHILE loops work, the diagram below shows how the above code would work. The WHILE loop would begin and check variable x to see if the value is less than 10. If it is, then the Boolean check will return TRUE and 1 will be added to x. This will keep occurring until x is no longer less than 10. When this is the case, the Boolean check will return FALSE and the WHILE loop will end, passing the code flow to the next statement in the transaction block (if there is any code afterwards).


















BREAK and CONTINUE 

BREAK and CONTINUE are 2 arguments that can be used with a WHILE loop to further control the flow of the loop:

  • BREAK - causes a break out of the loop and any code after the WHILE loop has ended is then executed. 
  • CONTINUE - causes the loop to restart, ignoring any other code after the CONTINUE keyword. 

WHILE loops can also be nested. If this is the case, then all statements will be executed within the inner loop first before control is passed to the outer loop. Using a BREAK statement in a nested WHILE loop will break out of the innermost loop and then transfer control to the outer loop.

Examples of WHILE Loops

You can use WHILE loops in a variety of different situations. The example below shows a SELECT statement used as the condition of the loop (which must be enclosed in parentheses) and an IF statement within the WHILE loop to control the flow:




WHILE statements can also be used in database cursors, where @@FETCH STATUS is used to control the cursor within the WHILE loop. For more information on cursors and @@FETCH STATUS, please read my blog post on Cursors in Stored Procedures (which can be found here).

















What Next...

Thanks for reading today's blog post! If you have any questions/comments/feedback, please leave them in the comments section below and I will get back to you as soon as I can. Alternatively, please like my SQL Genius Facebook Page and leave a message on there.

Tomorrow, I will be writing about using WAITFOR in order to control the flow of your transaction statements. Stay tuned!

Many thanks again for reading! 

0 Comments

Post a Comment

Please post any feedback or comments here...

Copyright © 2009 SQL Genius - Personal Development of a Junior All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.