الأمر START TRANSACTION
< SQL
يُستخدم هذا الأمر للإعلام بالبدء بإجراء مجموعة من العمليات التي قد تنتهي بأمر 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 |
|---|---|---|---|---|
| نعم | نعم | نعم | نعم | نعم |