Know-how, előadás, létrehozás és alkalmazás
14.1 példa. Használjon egy triggeret az érték korlátozásának végrehajtásához. A táblázathoz csatolt rekordbajnokságban az értékesített termékek mennyisége nem lehet több, mint a raktárasztalnál.
A bejegyzés beszúrása a Tranzakció táblába például a következő lehet:
A létrehozott triggernek a következőképpen kell reagálnia a végrehajtására: a parancsot törölni kell, ha a raktári táblában az áru többi része értéke kisebb volt, mint a bevitt kóddal (a példában, a termékkód = 3) eladott mennyiség. A beillesztett rekordban az áruk mennyiségét "+" jelzéssel jelölték meg, ha az árukat szállítják, és "-" megjelöléssel, ha azt eladják. A bemutatott trigger csak egy hozzáadott rekord feldolgozására van konfigurálva.
14.1 példa. Használjon egy triggeret az érték korlátozásának végrehajtásához.
14.2. Példa. Használja a ravaszt statisztika gyűjtésére.
Hozzon létre egy triggeret a rekord beillesztésének műveletének feldolgozásához a Tranzakció táblázatba. például egy ilyen parancs:
Az áruk a 3 kóddal az ügyféltől az 1 kóddal 200 darabos mennyiségben kerülnek kiszállításra.
Az áruk értékesítése vagy fogadásakor ennek megfelelően módosítani kell az állományállományát. Ha az áru még nincs raktáron, hozzá kell adnia a megfelelő bejegyzést a raktárasztalhoz. A trigger csak egy sorot kezel, amelyet hozzáad.
14.2. Példa. Használja a ravaszt statisztika gyűjtésére.
14.3. Példa. Hozzon létre egy triggeret a Tranzakciótábla törlése műveletének feldolgozásához. például egy ilyen parancs:
Olyan termék esetében, amelynek kódja egy bejegyzés törlésekor van megadva, módosítania kell a készletegyenlegét. A trigger csak egy törölt rekordot kezel.
14.3. Példa. Indítás a táblázatban szereplő bejegyzés törlésének műveletének feldolgozásához
14.4. Példa. Hozzon létre egy triggeret a tranzakcióváltási művelet feldolgozásához a Tranzakció táblában. például ezzel a paranccsal:
minden olyan tranzakcióban, amelynek kódja 3-nak felel meg, az áruk mennyiségét 10 egységgel csökkentheti.
A megadott parancs több rekord megváltoztatásához vezethet egyszerre a Tranzakció táblában. Tehát megmutatjuk, hogyan hozzunk létre egy ravaszt. egynél több rekord feldolgozása. Az egyes módosított rekord szükséges egy régi (mielőtt a változás) Termék kód csökkentése pont maradék állomány értéke a régi (előző változhat) cikkszám és egy új (a változás után) a termék kódja nagyobb maradék állomány értéke az új (a változás után) értéket. Az összes módosított bejegyzés feldolgozásához beírjuk azokat a kurzorokat, amelyekben az összes régiet (a törölt táblázatból) és minden új értéket mentettük (a beillesztett táblából).
14.4. Példa. trigger a feldolgozás műveletének feldolgozásához a rekord a táblázatban
A megfontolt indíttatásban az áruk mennyisége nem hasonlítható össze, ha a tranzakciós rekordot a raktárban lévő egyenlegével megváltoztatják.
14.5. Példa. Javítsuk meg ezt a hibát. Hibaüzenet létrehozásához használja az MS SQL Server RAISERROR parancsot a ravasz testében. amelynek érvei az üzenet szövege, súlyossági szintje és hibaállapota.
14.5. Példa. A ravaszt javított verziója a rekord rekordváltoztatásának feldolgozásához a táblázatban
14.6. Példa. A 14.5 példában az összes változtatást meg kell szüntetni, ha lehetetlen megvalósítani legalább egyiküket. Hozzunk létre egy ravaszt. Lehetővé teszi az egyes rekordok módosításának visszavonását, és a többiek módosítását.
Ebben az esetben a ravaszt nem a rekordok módosítása után hajtják végre, hanem a változtatás parancs helyett.
14.6. Példa. Trigger, amely lehetővé teszi, hogy visszavonja a csak bizonyos rekordok módosítását, és végezze el a többi változást.