سؤال

فيما يتعلق بالتحديث وإدراج مشغلات خادم MS SQL ، هل هناك طريقة لجعلها ذرية؟ بمعنى آخر ، في حالة حدوث خطأ أثناء الزناد ، هل من الممكن تراجع الإدراج أو التحديث الأصلي تلقائيًا؟

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

المحلول

بعد أن تكون المشغلات تلقائيًا جزءًا من عبارة DML Asert/Update/Delete على جدول.

يمكنك ببساطة إصدار تراجع تران في الزناد لتراجع كل العمل في الزناد وبيان I/U/D الأصلي. يتم التراجع عن tran الخارجي أيضًا إذا كان هناك واحد.

مهم

التراجع في الزناد لـ SQL 2000 ويؤدي في وقت سابق إلى إحباط الدفعة. لن يتم تشغيل رمز بعد الإساءة I/U/D. انظر مقال Erland الرائع و اخر

بالنسبة لـ SQL 2005 مع Try/Catch ، سيذهب التنفيذ إلى كتلة الصيد وسيخرج دفعة (AKA AKA STORED PROC وما إلى ذلك) بشكل طبيعي.

نرى تراجع وترتبط في الإجراءات المخزنة والمشغلات. الزناد ومحاولة/الصيد هو هنا

نصائح أخرى

هناك مقال جيد في MSDN يتحدث عن المشغلات والمعاملات ، الموجودة هنا:

http://msdn.microsoft.com/en-us/magazine/cc164032.aspx

في الأساس ، تريد استخدام المعاملات لجعل العملية ذرية.

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