PDA

View Full Version : یک ابهام در مورد Trigger



MShirzadi
پنج شنبه 01 شهریور 1386, 22:42 عصر
وقتی ما یک TRIGGER روی یک Table می نویسیم که زمانی که این جدول Update شد این Trigger اجرا شود
حالا اگر ما با این Trigger یک رکورد در همین Table قرار بدهیم چرا این Trigger حلقه بینهایت نمی شود؟؟؟

Mohammad_Mnt
پنج شنبه 01 شهریور 1386, 23:39 عصر
فکر نمی کنم اجازه ی همچین کاری را توی تریگر داشته باشین

MShirzadi
پنج شنبه 01 شهریور 1386, 23:53 عصر
ولی من این کار رو کردم اما حلقه بینهایتی هم رخ نداده

Microsoft.net
جمعه 02 شهریور 1386, 20:56 عصر
دلیلش اینه که در SQL تنظیمی وجود داره که از fire شدن یک trriger توسط trriger جلوگیری به عمل می آید و به صورت default به صورت false است

AminSobati
یک شنبه 04 شهریور 1386, 13:07 عصر
دوست عزیزم،
Triggerها و SPها میتونن حداکثر 32 مرحله Nest یا تو-در-تو بشن. ولی باید این قابلیت رو فعال کنین:
ALTER DATABASE [Northwind] SET RECURSIVE_TRIGGERS ON

SabaSabouhi
دوشنبه 05 شهریور 1386, 09:38 صبح
وقتی ما یک TRIGGER روی یک Table می نویسیم که زمانی که این جدول Update شد این Trigger اجرا شود
حالا اگر ما با این Trigger یک رکورد در همین Table قرار بدهیم چرا این Trigger حلقه بینهایت نمی شود؟؟؟

با سلام
خیلى ساده هست Trigger شما روى Update هست و عمل شما یک Insert پس دلیلى براى اجرا سدن دوباره‌ى Trigger وجود ندارد.
اگر Trigger شما به عمل Insert حساس باشد تا تعداد مشخصى که SQL اجازه مى‌دهد این Trigger به صورت تودرتو اجرا خواهد شد. اگر اشتباه نکرده باشم تعداد پیش‌فرض براى حداکثر فراخوانى تودرتوى Trigger باید 32 تا باشد که البته قابل تغییر هست.

صبا صبوحى

MShirzadi
دوشنبه 05 شهریور 1386, 12:44 عصر
خوب حالا ما چطو می تونیم مقدار 32 تا رو تغییر بدیم
البته از توجه شما تا حالا خیلی خیلی ممنونم

AminSobati
چهارشنبه 07 شهریور 1386, 10:17 صبح
تو-در-تو شدن Triggerها رو میشه فعال یا غیر فعال کرد. من دستوری نمیشناسم برای تغییر عدد 32

SabaSabouhi
جمعه 09 شهریور 1386, 10:52 صبح
تو-در-تو شدن Triggerها رو میشه فعال یا غیر فعال کرد. من دستوری نمیشناسم برای تغییر عدد 32

با سلام
شاید من اشتباه کرده باشم. به نظرم مى‌رسه که یه جایى امکان تغییر این تعداد رو دیده باشم. نگاه مى‌کنم اگه پیدا کردم اینجا مطرح مى‌کنم.

صبا صبوحى