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
551 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 ==> | Transactions (6 exercises) |
Level ==> | Average difficulty |
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.
First (if you haven't already done so) run the script shown above to generate the Doctor Who training database.
Type in and run the following script to generate a new column called NumberEnemies in the tblEpisode table:
ALTER TABLE tblEpisode
ADD NumberEnemies int
Write an update query which will set this column to equal the number of enemies for each episode (but within a transaction), then:
Use @@RowCount to see how many rows are affected, but don't forget to store this in a variable immediately after running the update so that its value doesn't get overwritten.
Note that the syntax of the update query is nasty:
-- set the number of enemies for each episode
UPDATE
tblEpisode
SET
NumberEnemies = (
SELECT
COUNT(*)
FROM
tblEpisodeEnemy AS ee
WHERE
ee.EpisodeId = e.EpisodeId
)
FROM
tblEpisode AS e
When you run this query, you should see something like this:
Because 117 rows were updated, your query should roll back the transaction.
Now change the threshold in the query from 100 to 120 and re-run it. This time the query should update the column, and display the results:
You have to wait until episode id 15 to get more than one enemy (at which point 3 come along at once).
When you've got this working, optionally save your query as Counting your enemies.sql, then close it down.
You can find other training resources for the subject of this exercise here:
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.