أرشيف

الاستعادة عملية في SQL Server 2005

مزود خدمة 2005 intoduced حديثا الطريق إلى التراجع عن المعاملات في SQL Server 2005

SET XACT_ABORT ON

عندما XACT_ABORT على. سوف البيانات T-SQL التراجع عن الصفقة تلقائيا عندما وقع خطأ في البيانات.

SET XACT_ABORT ON

USE زقة
تبدأ تران
تضاف إلى القيم EmpInfo(1)
تضاف إلى القيم EmpInfo(1) — هذا البيان سيرفع الخطأ المفتاح الأساسي
تضاف إلى القيم EmpInfo(2)
ارتكاب تران

سوف السطر الأول من قرأه تنفيذ دون أية أخطاء. سوف يكون من الخطأ المفتاح الأساسي تثير في السطر الثاني. ولكن لن ترتكب هذه الصفقة كتلة بأكملها لأن XACT_ABORT في يوم.

1 التعليق على التراجع عن عملية في SQL Server 2005

  • noreply@blogger.com (تود)

    واعلمي أن XACT_ABORT ينهي الحالية * دفعة *, لا الأمر بأكمله. يتم فصل دفعات مع الكلمة GO. سيستمر التنفيذ في بداية الدفعة التالية.

    هذه الميزة هي أيضا في SQL Server 2000, على الرغم من أنه يتصرف بشكل مختلف قليلا عن الأخطاء المختلفة.

    في SQL 2000, هناك حالات حيث فشل XACT_ABORT إلى التراجع عن الصفقة تلقائيا.

    على سبيل المثال:

    إدخالها في اسم العمود غير صالح.

    إدخالها في مفتاح أساسي مع IDENTITY_INSERT OFF.

    تنفيذ وSELECT يستخدم UDF غير موجودة.

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

    هناك طرق للتعامل مع هذه الأخطاء. بك ارتكاب ينبغي أن يكون في دفعة أداء البيانات DML. بعد الدفعة (بعد الكلمة GO) يمكنك التحقق منTRANCOUNT لمعرفة ما اذا كان أكبر من الصفر والتصرف وفقا لذلك. عادة التراجع عن الصفقة.

    يمكن المعاملات تمتد دفعات, حتى تتمكن من تنفيذ التراجع في دفعة لاحقة.

ترك الرد

يمكنك استخدام هذه العلامات هتمل

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>