Read our blogs, tips and tutorials
Try our exercises or test your skills
Watch our tutorial videos or shorts
Take a self-paced course
Read our recent newsletters
License our courseware
Book expert consultancy
Buy our publications
Get help in using our site
544 attributed reviews in the last 3 years
Refreshingly small course sizes
Outstandingly good courseware
Whizzy online classrooms
Wise Owl trainers only (no freelancers)
Almost no cancellations
We have genuine integrity
We invoice after training
Review 30+ years of Wise Owl
View our top 100 clients
Search our website
We also send out useful tips in a monthly email newsletter ...
Software ==> | SQL (203 exercises) |
Topic ==> | Parameters and return values (17 exercises) |
Level ==> | Harder than average |
Subject ==> | SQL training |
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.
This will generate the database that you'll need to use in order to do this exercise (note that the database and script are only to be used for exercises published on this website, and may not be reused or distributed in any form without the prior written permission of Wise Owl).
The aim of this exercise is to link two stored procedures together. Start by creating a stored procedure which shows the ContinentName where the first event occurred.
It's the publication of The Wealth of Nations (to save you searching for it)!
Now create a second stored procedure which filters events to show only those which happened in the continent passed in via a parameter. Run this with Europe:
Not a particularly good time in Europe's history.
Using an output parameter take the ContinentName produced by the first stored procedure and store it in a variable. Use this variable to filter the second procedure.
DECLARE @Variable VARCHAR(100) = ''
EXEC uspProcedure1
@OutputParameter = @Variable OUTPUT
EXEC uspProcedure2
@Parameter = @Variable
Optionally save this as Time of woe.sql, then close it down.
You can find other training resources for the subject of this exercise here:
From: | jtdelato |
When: | 02 Sep 21 at 18:09 |
My solution calls the first stored procedure as part of the second stored procedure. I get the same result as using the method described in the exercise of making two separate calls to two separate procedures and declaring a variable.
Is there any reason my solution would be bad in practice? It seems like being able to call a single procedure that internally leverages the work of another procedure would be preferable to having to declare a variable and call two separate procedures.
Thanks for any advice
From: | Andy B |
When: | 03 Sep 21 at 11:49 |
In my opininon your solution is far more sensible, but ... be aware that this is a training exercise designed to teach about output parameters and calling stored procedures.
Personally I rarely if ever call one stored procedure from another, although I often find myself calling user-defined functions from stored procedures. If this was a real-world scenario, I would certainly solve the problem using your approach.
From: | jtdelato |
When: | 03 Sep 21 at 15:17 |
Thanks for your detailed reply! I appreciate your experience with this. Looks like UDFs are my next lesson.
I try to solve the exercises from the initial description/prompt to see if I can do it without the guidance in the exercises. So, when I checked my work and saw that the exercise recommended a different approach I was just curious if one way was more preferable, as it seems that while there are often multiple solutions, there are usually benefits/drawbacks to each approach.
Thanks again, and thanks for providing these great exercises! I've been learning a lot.
From: | Andy B |
When: | 03 Sep 21 at 15:30 |
Good to hear!
Kingsmoor House
Railway Street
GLOSSOP
SK13 2AA
Landmark Offices
99 Bishopsgate
LONDON
EC2M 3XD
Holiday Inn
25 Aytoun Street
MANCHESTER
M1 3AE
© Wise Owl Business Solutions Ltd 2024. All Rights Reserved.