De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

SQL Les 12 25 May 2019.

Verwante presentaties


Presentatie over: "SQL Les 12 25 May 2019."— Transcript van de presentatie:

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


Download ppt "SQL Les 12 25 May 2019."

Verwante presentaties


Ads door Google