HamidReza Ireh

حمیدرضا ایره

HamidReza Ireh

حمیدرضا ایره

Trigger ها نوع خاصی از Stored Procedure ها هستند که مستقیما توسط کاربر قابل اجرا نیستند . هنگامی که یک Trigger  ساخته می شود  در زمان تغییر خاصی روی کل جدول و یا ستون خاصی از آن رویه ذخیره شده در Trigger  فراخوانی می شود .
یک Trigger در پاسخ به جملات INSERT, UPDATE, DELETE فراخوانی می شود . و می تواند پرس و جویی از جدول های دیگر ویا دستورات مرکب SQL  باشد. اگر Server با مشکلی مانند پر شدن محل ذخیره داده مواجه شود تمام تراکنش به طور خودکار بازگشت داده می شود .
Trigger ها می توانند در کارهای زیر مفید باشند :

  •  می توانند تغییراتی را بصورت آبشاری (Cascading) در جدول های از بانک اطلاعاتی ایجاد کنند .
  • می توانند تغییراتی بسیار پیچیده تر و مرکب تر از ایجاد محدودیت ها بوسیله CHECK را ایجاد کنند . مثلا محدود کننده Check تنها می تواند مقدار یک ستون را با مقداری از همان جدول مقایسه کند و اگر بخواهیم آنرا با مقداری از جدول دیگری مقایسه کنیم نیاز به Trigger خواهیم داشت .
  • محدود کننده ها (Constraint) تنها می توانند با پیامهای خطای استاندارد کار کنند و برای پاسخگویی به خطای مرکب باید از Trigger ها استفاده کرد .
  • ارزیابی وضعیت جدول قبل و یا بعد از تغییر در آن به منظور تعیین انجام کارهای خاص در وضعیت های خاص .
  • قابلیت انجام چند Trigger در پاسخ به INSERT, UPDATE, DELETE

نکته:

اگر Constraint هایی روی یک جدول Trigger  اعمال شود ، آنها بعد از جملات  Instead of Trigger و قبل از After اجرا می شوند . اگر در اجرای Constraint ها ایرادی بودجود آمد فعالیتهای Instead of باز گردانده می شوند و تریگر  After اجرا نمی شود .

ساختار یک TRIGGER  :

CREATE [OR REPLACE ] TRIGGER trigger_name 
{BEFORE | AFTER | INSTEAD OF }
{INSERT [OR] | UPDATE [OR] | DELETE}
[OF col_name]
ON table_name
[REFERENCING OLD AS o NEW AS n]
[FOR EACH ROW]
WHEN (condition)
BEGIN
--- sql statements
END;


نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی