1> /* Simple trigger examples */ 2> /* */ 3> /* Note: Triggers are based on tables in my database. */ 4> /* For each trigger: */ 5> /* Table structure and content shown first */ 6> /* Trigger definition next (sp_helptext) */ 7> /* Example showing result of trigger action */ 8> /* */ 9> /* To try out triggers like these, use similar tables in your*/ 10> /* database, or create them first if necessary. */ 11> /* */ 12> use evelyn 1> /* */ 2> /* Trigger showless: shows inserted row in table supplies */ 3> /* */ 4> select * from supplies id product number unitprice --- ---------- ------ ------------------------ 6 stamps 100 0.32 3 erasers 50 1.24 4 notebooks 50 3.38 5 envelopes 50 0.23 7 rolodex 6 7.88 8 rulers 10 3.38 9 mice 33 2.50 10 notepads 50 1.50 (8 rows affected) 1> /* */ 2> sp_helptext showless # Lines of Text --------------- 1 (1 row affected) text --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /* Make and test a better trigger - show fewer columns. */ create trigger showless on supplies for insert as select supplies.id, supplies.product, supplies.number, supplies.unitprice from supplies, inserted where supplies.id = inserted.id (1 row affected) (return status = 0) 1> /* */ 2> insert into supplies 3> values (1, 'pencils', 50, .98) id product number unitprice --- ---------- ------ ------------------------ 1 pencils 50 0.98 (1 row affected) (1 row affected) 1> /* */ 2> /* Trigger countrows: updates averages when new data inserted */ 3> /* */ 4> select * from decimals degrees mm wind -------- ------- ---- 90.00 760.2 7 33.00 759.7 2 45.50 763.0 3 30.00 755.7 10 10.00 750.0 5 75.00 762.5 8 (6 rows affected) 1> /* */ 2> sp_helptext countrows # Lines of Text --------------- 1 (1 row affected) text --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- create trigger countrows on decimals for insert as select "Average atm. pressure and wind speed now", avg(mm), avg(wind), "for the", count(*), "entries in this table." from decimals (1 row affected) (return status = 0) 1> /* */ 2> insert into decimals 3> values (75, 762.5, 8) ---------------------------------------- ---------------------------------------------------- ----------- ------- ----------- ---------------------- Average atm. pressure and wind speed now 759.085714285714 6 for the 7 entries in this table. (1 row affected) (1 row affected)