Know-how, prelegere, declanșează crearea și aplicarea

Exemplul 14.1. Utilizați un declanșator pentru a implementa constrângeri asupra valorii. Tranzactia se adaugă la masa înregistrează numărul de bunuri vândute nu ar trebui să fie mai mult decât restul din depozit de masă.







Comanda pentru a introduce o intrare în tabelul Tranzacție poate fi, de exemplu, următoarea:

de declanșare generat trebuie să răspundă la punerea sa în aplicare după cum urmează: este necesar pentru a anula comanda, în cazul în care valoarea în reziduu bunuri de masă a fost de magazie cantități mai mici de bunuri vândute cu codul introdus (exemplul Cod produs = 3). În înregistrarea introdusă cantitatea de mărfuri indicată cu un semn „+“, în cazul în care bunurile sunt livrate, iar semnul „-“ în cazul în care este vândut. Declanșatorul prezentat este configurat să proceseze numai o înregistrare adăugată.

Exemplul 14.1. Utilizați un declanșator pentru a implementa constrângeri asupra valorii.

Exemplul 14.2. Utilizați declanșatorul pentru a colecta statistici.

Creați un declanșator pentru procesarea operației de introducere a unei înregistrări în tabelul Tranzacții. de exemplu, o astfel de comandă:

Se livrează mărfurile cu codul 3 de la client cu codul 1 în cantitate de 200 de unități.

La vânzarea sau primirea bunurilor, este necesar să se modifice în mod corespunzător valoarea stocului de bunuri. Dacă mărfurile nu sunt deja în stoc, trebuie să adăugați intrarea corespunzătoare în tabelul Warehouse. Declanșatorul se ocupă numai de un rând care este adăugat.

Exemplul 14.2. Utilizați declanșatorul pentru a colecta statistici.







Exemplul 14.3. Creați un declanșator pentru procesarea operației de ștergere a unei intrări din tabelul Tranzacție. de exemplu, o astfel de comandă:

Pentru produsul al cărui cod este specificat la ștergerea unei intrări, trebuie să ajustați soldul stocului. Declanșatorul se ocupă de o singură înregistrare care este ștearsă.

Exemplul 14.3. Trigger pentru procesarea operației de ștergere a unei intrări dintr-o masă

Exemplul 14.4. Creați un declanșator pentru procesarea operației de modificare a tranzacției în tabelul Tranzacții. de exemplu, cu această comandă:

în toate tranzacțiile cu bunuri care au un cod egal cu 3, reduce cantitatea de mărfuri cu 10 unități.

Comanda se poate modifica mai multe intrări în tabelul de tranzacție. Deci, să arătăm cum să creăm un declanșator. procesarea mai multor înregistrări. Pentru fiecare înregistrare modificat este necesară pentru un vechi (înainte de modificare) Codul produsului reduce reziduuri Postul în stoc de valoarea vechi (înainte de a schimba) numărul postului și un nou (după modificare) reziduului codul produsului mai mare în stoc prin valoarea noii valori (după modificare). (Din tabelul inserat) pentru a procesa toate înregistrările modificate, să introducă cursoare, care păstrează toate toate noile valori și vechile (eliminat din tabel), și.

Exemplul 14.4. declanșa pentru procesarea operației de schimbare a înregistrării în tabel

În cele de mai sus declanșează nici o comparație a cantității de mărfuri atunci când schimbă înregistrarea tranzacției cu restul în stoc.

Exemplul 14.5. Să corectăm acest defect. Pentru a genera un mesaj de eroare, utilizați comanda MS SQL Server RAISERROR în corpul declanșatorului. ale căror argumente sunt textul mesajului, nivelul de gravitate și starea erorilor.

Exemplul 14.5. Versiunea corectată a declanșatorului pentru procesarea operației de schimbare a înregistrării în tabel

Exemplul 14.6. În exemplul 14.5, toate modificările sunt anulate dacă este imposibil să se implementeze cel puțin una dintre ele. Să creăm un declanșator. Vă permite să anulați modificarea numai a anumitor înregistrări și să efectuați o modificare a restului.

În acest caz, declanșatorul este executat nu după modificarea înregistrărilor, ci în locul comenzii de modificare.

Exemplul 14.6. Trigger, care vă permite să anulați modificarea numai a anumitor înregistrări și să efectuați o schimbare la restul.







Articole similare

Trimiteți-le prietenilor: