- 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 | Triggers exercise | Create a trigger to capture any changes made to countries
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.
- Go into SQL Server Management Studio;
- Open the SQL file you've just unzipped (you can press CTRL + O to do this); then
- Execute this script.
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).
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.
The aim of this exercise is to use a trigger to write any country changes made into a separate table. Here is what the table should show if you rename Vietnam to Viet Nam and then insert and delete the (to date) fictitious country OwlLand:
What the log table should show after these changes.
To start the ball rolling, create the table shown above with two columns:
|Column||What it should contain|
|CountryName||The name of the country just inserted, edited or deleted|
|Change||Whether this was inserted, deleted or changed|
Now create a trigger to run after anyone changes a country. This should capture two rows:
|The old country name||Take the deleted table's country name|
|The new country name||Take the inserted table's country name|
Note that when you update a table, you populate both the deleted and inserted tables.
Now create two more triggers:
|Trigger||What it should do|
|After insert||Add a row to the changes table containing the new country's name|
|After delete||Add a row to the changes table containing the name just deleted|
When you're happy everything's working OK, optionally save your query as Catalonia perhaps.sql, then close it down.