Maximum stored procedure

PříspěvekNapsal: 28.08.2024 12:27
od jan.zocek
Při existenci více triggerů nad jednou tabulkou může nastat chyba: maximum stored procedure function trigger or view nesting level exceeded (limit 32)

Obecně asi nastal v principu tento případ:

Máme tabulku T, ve které jsou definovány dva triggery:
Trigger A se spustí a modifikuje data v tabulce T, což následně spustí trigger B
Trigger B, který také modifikuje data v tabulce T, následně spustí: Trigger A.
Aby nedošlo k rekurzivnímu volání a zacyklení tak v Triggeru B použijeme kontrolu úrovně zanoření.

IF TRIGGER_NESTLEVEL() > 1RETURN

Oba triggery se vykonají a nedojde k nekonečné smyčce

Dopručení:
v externích rekurzivních triggerech použít kontrolu úrovně zanoření