سؤال

وقبل دقائق قليلة، بينما كان يعمل خارج sproc الجديد، وتنفيذ العبارة حذف الخطأ. شيء من هذا القبيل:

Delete From SomeTable Where SomeStatusID=1

و10 ثانية في ذلك، أدركت أنني كتبته في حالة الخطأ وضرب إلغاء. وقال أن البيان ألغيت.

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

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

هل كانت مفيدة؟

المحلول

وبشكل افتراضي، يتم تنفيذ عبارة DML واحد كما معاملة. إذا نجح البيان، تلتزم المعاملة. إذا تم إلغاء بيان أو فشل ذلك، يتم إرجاع المعاملة مرة أخرى.

وتم بناء هذا السلوك في لمحرك، وليس لها علاقة استوديو الإدارة. انظر AUTOCOMMIT المعاملات في مستندات.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top