כל מה שאפשר עם טריגר- אפשר בלי..
את ה"משהו האחר" שצריך לשנות תוכל לשנות באמצעות שורת קוד לאחר זה שמשנה את השדה, כלומר- אפשר גם בלי..
מדוע בכל זאת עם?
נניח שיש לך טבלת משתמשים שאת חלק מהנתונים יכולים המשתמשים עצמם לשנות דרך אתר האינטרנט שאיתו הם מנהלים את פרטיהם האישיים,
צוות ה-DBA-ים הזוטרים יכולים לטפל בנתונים דרך ממשק משתמש שכתבת להם,
וגם אתה (אני מניח שאתה ה-DBA הבכיר..) משנה לפעמים נתונים באופן ישיר דרך ה-SSMS.
במקום להוסיף קוד מתאים ל"משהו האחר" גם באתר האינטרנט, גם בממשק המשתמש החלונאי, וגם לזכור לעשות זאת ידנית כשאתה עובד ישירות מול הטבלה - ניתן לכתוב טריגר ואז כל מי שיעדכן את הנתונים לא משנה איך- הטריגר יופעל אוטומטית.
אתה תצטרך רק לתחזק את הקוד של הטריגר ולא שני קודים נפרדים + לזכור לטפל בפעולות של עצמך.
דוגמה אחרת- יש תוכנה שעובדת מצויין ואסור או אי אפשר לנגוע בה, אבל אנחנו רוצים שבכל פעם שהיא משנה את X נעדכן את Y.. נכתוב טריגר וכך זה יקרה מבלי שנצטרך לשנות את הקוד הקיים.
הטענה שזה כבד מתייחסת למקרים בהם כותבים טריגר ענק שבשעה שמישהו מכניס שורה לטבלה הוא רץ ובודק פה, מעדכן שם, מוסיף מצד אחד, מוחק מצד שני וכו', והמשתמש האומלל שרק הוסיף שורה לא מבין למה זה לוקח כל כך הרבה זמן (לא יומיים אבל 3 שניות במקום אלפית שניה).
יש לזכור- הפעולה אינה מסתיימת לפני שהטריגר שהיא מפעילה מסתיים!
לפיכך אם "המשהו האחר" שאתה צריך לשנות הוא מאוד מסובך- אולי כדאי לעשות זאת בדרך אחרת- פחות אלגנטית אך גם פחות כבדה.