Download de presentatie
De presentatie wordt gedownload. Even geduld aub
1
SQL Les 12 25 May 2019
2
Agenda Herhaling Triggers Oefeningen Cursors 25 May 2019
3
Herhaling DML SELECT - statement SINGLE ROW FUNCTIONS JOIN
OUTER JOIN INNER JOIN SELF JOIN GROUP FUNCTIONS SUBQUERIES 25 May 2019
4
Herhaling DML TRANSACTIONS INSERT UPDATE DELETE BEGIN TRAN COMMIT
ROLLBACK 25 May 2019
5
Herhaling DDL TABLE VIEW PROCEDURELE EXTENSIONS STORED PROCEDURES
USER DEFINED FUNCTIONS SCALAR VALUED FUNCTIONS TRIGGERS 25 May 2019
6
Trigger Een opzichzelf bestaande routine afhankelijk van een bepaalde tabel of view Trigger zorgt voor het uitvoeren van een actie indien er een event gebeurt op een tabel of view Event kan een DML of DDL statement zijn 25 May 2019
7
DML Trigger Table_name | view_name: FOR | AFTER | INSTEAD OF:
Object waarop de trigger gebouwd wordt FOR | AFTER | INSTEAD OF: Wanneer moet de actie uitgevoerd worden? INSERT | UPDATE | DELETE Na welk event moet de actie gebeuren? 25 May 2019
8
Voorbeeld trigger Veronderstel: We hebben een tabel emp
We hebben een tabel emp_audit, waarin we de operaties op emp willen bijhouden
9
Voorbeeld trigger (2)
10
Inserted and Deleted tables
Twee tabellen onderhouden door het systeem Inserted: Bevat copies van de inserted rijen in de triggered tabel Deleted: Bevat copies van de deleted rijen in de triggered tabel Een UPDATE statement wordt behandeld als een DELETE gevolgd door een INSERT 25 May 2019
11
Toepassingen van DML triggers
Audit van tabellen Implementeren van business rules Referentiële integriteit forceren Meer flexibiliteit dan de referentiële integriteit op tabel level 25 May 2019
12
Sequence van triggers sp_settriggerorder sp_helptrigger
System stored procedure Zetten van de order van de triggers op een tabel Eerst of laatste trigger aanduiden voor een statement type (INSERT, UPDATE, DELETE, …) sp_helptrigger Tonen van eigenschappen van een trigger Niet van toepassing voor INSTEAD OF triggers 25 May 2019
13
DDL Triggers ALL SERVER | DATABASE: EVENT_TYPE
Scope van de trigger (op een database of op de gehele server) EVENT_TYPE 25 May 2019
14
DDL Triggers EVENT_GROUP Verschillen met DML triggers
Verschillen met DML triggers Geen INSERTED en DELETED tabellen Geen INSTEAD OF Scope op een database of Server en niet op een tabel of view 25 May 2019
15
Example DDL Trigger USE sample; GO CREATE TRIGGER prevent_drop_triggers ON DATABASE FOR DROP_TRIGGER AS PRINT 'You must disable "prevent_drop_triggers" to drop any trigger' ROLLBACK 25 May 2019
16
Oefening Make een trigger die in een AUDIT tabel wegschrijft wanneer een CREATE TABLE statement uitgevoerd is op de MyFirstDB database. Pas de trigger aan zodat de AUDIT tabel wordt opgevuld voor alle TABLE statements EXTRA: Vul in de AUDIT tabel ook de naam van de tabel die is aangepast alsook het event dat gebeurd is 25 May 2019
17
Cursor Syntax 25 mei 2019
18
Cursor (2) Simple example 25 mei 2019
19
Cursor (3) 25 mei 2019
20
Cursor (4) - steps 25 mei 2019
21
Cursors (5) Voordelen Gemakkelijk bij row-by-row procedures
Scrolling door de data Quick&Dirty 25 mei 2019
22
Cursor (6) Nadelen Performance
Vergt veel CPU kracht Vaak gebruikt voor Quick&Dirty programming Subtiele errors werkt niet Te veel rijen in de cursor 25 mei 2019
23
Oefeningen op Cursor Schrijf een cursor die in een extra column het verschil tussen de value van stat berekent van de huidige rij en vorige rij. In de eerste rij moet geen resultaat getoond worden. 25 mei 2019
24
Oefeningen op cursor Creëer een stored procedure die van alle tabellen in de MyFirstDB database de huidige grote van de tabel uitprint / wegschrijft naar het output scherm 25 mei 2019
25
Oefeningen op Triggers
p. 385 Beginners Guide to SQL Server 2008 25 May 2019
26
Oefeningen Herhalingsoefeningen 25 mei 2019
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.