- Simple Queries (4)
- Setting criteria using WHERE (5)
- Calculations (7)
- Calculations using dates (4)
- Basic joins (8)
- More exotic joins (2)
- Aggregation and grouping (8)
- Views (5)
- Subqueries (5)
- Stored procedures (5)
- Variables (8)
- Parameters and return values (11)
- Testing conditions (1)
- Looping (3)
- Scalar functions (6)
- Transactions (5)
- Creating tables (5)
- Temporary tables and table variables (9)
- Table-valued functions (6)
- Derived tables and CTEs (13)
- Dynamic SQL (4)
- Pivots (2)
- Triggers (2)
- Archived (70)
SQL | Stored procedures exercise | Create a procedure to show Steven Moffat's Dr Who episodes
This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.
You can learn how to do this exercise if you attend one of more of the courses listed below!
You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.
First (if you haven't already done so) run the script shown above to generate the Doctor Who training database.
Using the tblAuthor and tblEpisode tables, create a stored procedure called spMoffats to list out the 32 episodes written by Steven Moffat in date order (with the most recent first):
The two tables from which you need to get data
Here is what the start of the output from running this stored procedure should look like:
When you run the stored procedure, these are the first few rows that you should see.
Now amend your SQL so that it creates a different stored procedure called spRussell, listing out the 30 episodes penned by people called Russell:
The first few Russell Davies episodes (again shown with the most recently made coming first).
Wouldn't it be nice if you could introduce a parameter giving the name of the author for whom you want to list episodes, so you'd only need the one stored procedure ...
Optionally, save this revised query as Russell.sql, then close it down.