الأمر START TRANSACTION

من موسوعة حسوب
< SQL
مراجعة 15:39، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُستخدم هذا الأمر للإعلام بالبدء بإجراء مجموعة من العمليات التي قد تنتهي بأمر COMMIT أو ROLLBACK، وله الصيغة التالية:

START TRANSACTION;

وتختلف هذه الصيغة باستخدام الكلمة المفتاحية BEGIN في محرك SQL Server لتصبح:

BEGIN TRANSACTION;

أما في محرك SQLite فهي الكلمة المفتاحية BEGIN فقط، أيّ:

BEGIN;

وفي محرك Oracle يصبح الأمر على النحو الآتي:

SET TRANSACTION NAME 'name';

ويكون هذا الأمر مسؤولًا عن البدء بالعمليات وتسميتها بآن واحد بالاسم الذي يُحدد عبر name.

مثال

إذا كان الجدول الآتي موجودًا في قاعدة البيانات:

Bill OrderID FullName CustomerID
160 0291 Abd al-Salam Hadi 1156
170 0302 Ahmad Mostafa 1157
210 0203 Reem Hammad 1158
350 0294 Abd Allah Sadiq 1159
185 0255 Raghad al-Hamdan 1160
165 0276 Abd al-Razzaq Salloum 1161
175 0247 Hussam Siraj 1162

تبدأ العمليات في الشيفرة الآتية باستخدام BEGIN TRANSACTION لتُجرَى العمليات بعدها (حذف السجلات التي تكون فيها قيمة الفاتورة أكبر من 200) وتُحفَظ التغييرات عبر الأمر COMMIT:

BEGIN TRANSACTION;  
DELETE FROM customers  
  WHERE Bill>200;  
COMMIT;

التوافقية

SQLServer SQLite Oracle PostgreSQL MySQL
نعم نعم نعم نعم نعم

مصادر