التحكم في عمليات الحركة Transaction control
نظرا لأهمية عمليات الحركة DML وفي الإضافة والحذف والتعديل توجد مجموعة من الأوامر التي تنظم هذه الحركة حيث تمكنك من تحديد بداية لهذه الحركة وتمكنك من الرجوع في الحركة أو تأكيد هذه الحركة وهذه الأوامر هي Set transaction ويستخدم لتحديد بداية الحركة وتستخدم لإنهاء الحركة وذلك بتنفيذ نهائي للأوامر المكتوبة بعد الأمر Set transaction فلا يمكن الرجوع في هذه العمليات –ROLLBACK تقوم بإلغاء نتائج أوامر الحركة UP date . Insert , delete)) المكتوبة بعد الأمر Set transaction ما لم ينفذ الأمر COMMLT وذلك لاكتشاف خطا في البيانات المدخلة وتريد عمل رجوع UNDO
-Save Point ويستخدم لتحديد نقطه في الحركة بعد الأمر Set transaction يمكنك العودة بالأمر ROLL BACK
حتي هذه النقطة وإلغاء الأوامر التي نفذت بعد هذه النقطة وحثي الأمر ROLL BACK ولتوضيح هذه الأوامر تكتب الأوامر التالية
في هذه السطور:
السطر 1و2و3 لتعديل قيمة حقل المرتب للموظف الذي كوده 94 بالقيمة 9994 وذلك في الجدول EMP في السطر رقم 4 يتم تحديد نقطة عند هذا الحد باستعمال المر Save Point وبالاسم SQL وبالتالي يمكن الرجوع في جميع العمليات التي بعد هذه النقطة بالأمر ROLLBACK في السطر رقم 5 يتم تعديل حقل المرتب SAL جميع الموظفين في الجداول EMP بالقيمة 1 تخيل لو انك كتبت الامر COMMTT بعد هذا الامر يتم تاكيد هذا الامر ولا يمكن الرجوع فيه وتصبح قيمة مرتبات جميع الموظفين جرب عرض البيانات عند هذا السطر بكتابة الأمر
يتم تغيير البيانات بنفس القيم التي تم تغيرها في السطور السابقة في السطر 6 يتم استعمال الأمر ROLLBACK مع النقطة SQL لإلغاء جميع العمليات التي يبين النقطة SQL والأمر ROLLBACK وبالتالي تعود المرتبات إلى اصلها.
جرب عرض بيانات الموظفين بالأمر
قم بتنفيذ الأوامر بالترتيب السابق تلاحظ عودة البيانات لأصلها وإلغاء التغييرات في السطر 7 الأمر COMMTT ويقوم بتأكيد العمليات السابقة ولكن ليس التي بعد النقطة SQL لأن هذه العمليات تم إلغائها ولا يتم تأكيد العمليات التي قبلها أو بعدها وهي السطور 1,2,3 وبالتالي لا يتم تأكيد سوى تغيير مرتب الموظفين رقم 99 إلى 9999 وللتأكيد من ذلك اعرض البيانات بالأمر
نفذ الأوامر التالية لإضافة بعض البيانات في قاعدة البيانات للتعامل معها