PDA

View Full Version : سوال: آیا امکان نوشتن یک Trigger عمومی وجود دارد؟



SYNDROME
دوشنبه 27 آبان 1387, 06:26 صبح
با سلام
من می خواهم یک Triggerبنویسم که مثلا با انجا عمل Insert در هر Table این Triggerفراخوانی شود و عملی خاص را انجام دهد.(می خواهم فیلدی که مانند فیلد AutoNumber است را مقدار دهی کنم)
می خواستم بدانم چنین قابلیتی در SQL وجود دارد که به جای تعریف 10 Trigger برای 10 Table برای 10 table بتوانم فقط 1 Trigger تعریف کرد؟(اگر وجود دارد در کدام ورژن SQL و چگونه)
موفق باشید

AminSobati
دوشنبه 27 آبان 1387, 23:09 عصر
سلام دوست عزیزم،
شما میتونین آخرین Identity مربوط به هر جدول رو در یک جدول مشترک نگهداری کنید. مثلا هر جدول یک سطر به خودش اختصاص میده و آخرین Identity هم اونجا ثبت میشه. بعد یک SP داشته باشین که نام جدول رو به صورت پارامتر بهش پاس بدین تا Identity جدید براتون تولید کنه

SYNDROME
سه شنبه 28 آبان 1387, 06:43 صبح
سلام دوست عزیزم،
شما میتونین آخرین Identity مربوط به هر جدول رو در یک جدول مشترک نگهداری کنید. مثلا هر جدول یک سطر به خودش اختصاص میده و آخرین Identity هم اونجا ثبت میشه. بعد یک SP داشته باشین که نام جدول رو به صورت پارامتر بهش پاس بدین تا Identity جدید براتون تولید کنه
با تشکر فراوان از امین گل
در زمانی که قرار است یک رکورد به جدول فرستاده شود می توانم چنین عملی را انجام دهم ولی زمانی که با دستور Insert Into بخواهم چنین عملی را انجام دهم که تعداد n رکورد را وارد جدول کند با نوشتن یک Trriger بر روی آن جدول قبل از ورود اطلاعات شماره Identity را در می آورم و در جدول ذخیره می کنم.
در ضمن من می خواهم شماره های خالی را نیز استفاده کنم.
همه این کارها با نوشتن یک Trigger بر روی جدول امکان پذیر است ولی تعداد جداول من خیلی زیاد است و اگر بخواهم برای همه Trigger بنویسم خیلی تعداد زیاد می شود.
آیا راه حلی به ذهن شما می رسد که با عمل Insert بر روی هر Table یک Trigger عمومی فراخوانی شود و عمل تخصیص عدد را انجام دهد.
موفق باشید