@ארכיטקט
וכתב הגרג"ר: במציאות הטריגרים אמורים להפעיל בדרך כלל פקודות Insert לטבלת לוג שמתעדת את השינויים בטבלה אליה הטריגר קשור, אם כי יכולים להיות להם שימושים נוספים. ע"ש.
גם מיקרוסופט כותבים כך.
גם ויקיפדיה מתייחסים לשימוש זה בפרט בהקשר של sql server, אגב הערך חדש לי ושווה בדיקה http://en.wikipedia.org/wiki/Log_trigger
אבל אני עומד על דעתי שזה שימוש זניח שלא במקומו.
למטרת לוג היו פשוט מוסיפים לDB את היכולת הזו וזהו. לא שימוש מסובך בטריגר מעצבן.
בקשר לתפקידו הטבעי של הטריגר, כולם מקדימים לומר שהוא פשוט ברוב המקרים חסר תפקיד - כלומר לא להשתמש בו. יתר המקרים זה שלמות נתונים שכתובים פעמיים וכדו'.
ראה בויקיפדיה האנגלית את משפט התמצות על טריגר:
...The trigger is mostly used for maintaining the integrity of the information on the database. For example, when a new record (representing a new worker) is added to the employees table, new records should also be created in the tables of the taxes, vacations and salaries.
במילים אחרות הטריגר בא לעולם ב"חטא" - בניית מסדי נתונים שאינם עומדים בתכלית הנורמליזציות בגלל הפער בין האידאליה למציאות).
אגב השיטוט, פתרונות מהרשת נוספים באותו עיקרון שלכם - ארכיטקט וsoft - מבוססים על טריגר
http://weblogs.asp.net/jongalloway/adding-simple-trigger-based-auditing-to-your-sql-server-database
http://www.softcodearticle.com/2012/11/imlementing-generic-audit-trail-trigger-in-sql-server/
פורסם במקור בפורום CODE613 ב26/08/2014 16:56 (+03:00)