موصى به, 2024

اختيار المحرر

الفرق بين المشغل والإجراء

المشغل والإجراء مكون من Advanced SQL. يقوم كل من Trigger و Procedure بتنفيذ مهمة محددة في التنفيذ. الاختلاف الأساسي بين Trigger و Procedure هو أن المشغل ينفذ تلقائيًا عند حدوث حدث ، بينما يتم تنفيذ الإجراء عندما يتم استدعاؤه بشكل صريح.

دعونا نناقش بعض الاختلافات الأخرى بين Trigger والإجراء بمساعدة مخطط المقارنة الموضح أدناه.

رسم بياني للمقارنة

أساس للمقارنةمحفزاتالإجراءات
الأساسيةيتم تنفيذها تلقائيًا عند حدوث حدث محدد.يمكن تنفيذها عند الحاجة.
دعوةلا يمكن استدعاء المشغلات داخل الإجراء.ولكن ، يمكنك استدعاء إجراء داخل المشغل.
معامللا يمكننا تمرير المعلمات على المشغلات.يمكننا تمرير المعلمات إلى الإجراءات.
إرجاعلا يُرجع المشغل القيمة عند التنفيذ.قد يقوم الإجراء بإرجاع القيمة / القيم عند التنفيذ.

تعريف الزناد

يشبه المشغل الإجراء الذي يتم تنفيذه تلقائيًا عند وقوع حدث معين. مثل الإجراء ، لا تحتاج إلى استدعاء المشغل بشكل صريح. يتم إنشاء المشغلات ، لأداء بعض المهام ردا على وقوع بعض الأحداث المحددة.

يمكن استدعاء المشغل استجابةً لعبارات DDL (DELETE أو INSERT أو UPDATE) أو عبارات DML (DELETE أو INSERT أو UPDATE) أو إلى بعض عمليات قاعدة البيانات (SERVERERROR أو LOGON أو LOGOFF أو STARTUP أو SHUTDOWN).

يتكون المشغل من ثلاثة مكونات كما هو موضح أدناه:

  • الحدث : الحدث هو حدوث بعض الحوادث التي تتسبب في تنفيذ المشغل. يمكن طلب المشغل لتنفيذ ما قبل الحدث أو قد يتم طلبه لتنفيذ بعد تنفيذ الحدث.
  • الحالة : إنه جزء اختياري من المشغل. إذا لم يتم تنفيذ المشغل المشار إليه ، فسيحدث الحدث المحدد. إذا تم تحديد الشرط ، فستتحقق من القواعد لتحديد ما إذا كان يجب تنفيذ المشغل.
  • الإجراء : الإجراء عبارة عن عبارات SQL التي سيتم تنفيذها عند تنفيذ برنامج Trigger.

يتم مناقشة الشكل العام لإنشاء حدث أدناه:

 إنشاء ممر قبل / بعد اتخاذ إجراء ؛ 

هنا ، الشرط اختياري.

تعريف الإجراءات

يمكن اتخاذ الإجراء كوحدة برنامج ، تم إنشاؤها لأداء بعض المهام ويتم تخزينها في قاعدة البيانات. يتم استدعاؤها بواسطة عبارة SQL كلما لزم الأمر. تشبه الإجراءات وظائف المستخدم المعرفة التي يحددها المطورين. يمكن استدعاء الإجراءات باستخدام CALL أو EXECUTE .

الإجراءات مفيدة في الحالات التالية:

  • إذا كان هذا الإجراء مطلوبًا من قبل العديد من التطبيقات الأخرى ، فيمكن تخزينه على الخادم بحيث يمكن استدعائه بواسطة أي تطبيق. سيقلل هذا الجهد من تكرار الإجراء من قاعدة بيانات إلى أخرى ويحسِّن أيضًا من نمطية البرامج.
  • بما أن الإجراء يتم تنفيذه على الخادم ، فسيقلل من نقل البيانات ويقلل أيضًا من تكلفة الاتصال.
  • يمكن استخدام الإجراءات للتحقق من القيود المعقدة التي تتجاوز قدرة المشغل.

دعونا نناقش الشكل العام لإنشاء إجراء:

 انشاء الاجراء () العودة. 

هنا ، المعلمات والإعلانات المحلية اختيارية. يتم ذكرها فقط عندما تكون مطلوبة. يصف البيان التالي استدعاء الإجراءات.

 مكالمة () ؛ 

الاختلافات الرئيسية بين المشغل والإجراء

  1. الفرق الأساسي بين المشغل والإجراء هو أن المشغل هو عبارة يتم استدعاءها تلقائيًا عند وقوع حدث ما. من ناحية أخرى ، يتم استدعاء الإجراء كلما كان ذلك مطلوبًا.
  2. يمكن للمرء تحديد الإجراء داخل المشغل. ولكن ، لا يتم تعريف المشغل أبدًا داخل الإجراء حيث يجب استدعاء المشغل تلقائيًا عند وقوع أي حدث.
  3. يمكننا تمرير المعلمات إلى الإجراءات ، ولكن لا يمكننا تمرير المعلمات للتحفيز كما لا يتم التذرع بها من قبلنا.
  4. يمكن إجراء إرجاع قيم المعلمات أو التعليمات البرمجية ولكن ، لا يمكن تشغيل المشغل.

استنتاج:

تعتبر المفاعلات مفيدة ، ولكن يتم تجنبها إذا كان هناك أي بديل لها ، لأنها تزيد من تعقيد البيانات. في بعض الأحيان تكون المشغلات بدائل عن طريق إجراء مناسب.

Top