subject:Implicit Transactions
content:เป็น Transactions ที่สามารถทำได้โดยการกำหนด mode ของการทำงานในแต่ละ session
ที่ต้องการให้เป็น ON และยกเลิกการทำงานโดยการกำหนดให้เป็น OFF
( โดยคำสั่ง SET IMPLICiT_TRANSACTIONS { ON | OFF } )
โดยถ้ากำหนด mode ของการทำงานให้เป็น on แล้วพบคำสั่งต่อไปนี้
ระบบจะทำการสร้าง Transactions ให้โดยอัตโนมัติ ได้แก่
ALTER TABLE, FETCH, REVOKE, CREATE, GRANT, SELECT, DELETE, INSERT,
TRUNCATE TABLE, DROP, OPEN, UPDATE
หลักการทำงานของ Implicit Transactions คือ
เมื่ออยู่ใน mode การทำงานของ implicit transactions แล้ว
การเริ่มต้นของการทำงานของ Transactions นี้ไม่ต้องเริ่มที่คำสั่ง BEGIN TRANSACTION
เพราะระบบจะรู้เองว่าจะเริ่มต้น Transactions เมื่อพบ keyword ข้างต้น ( ALTER TABLE, FETCH, ..., UPDATE )
แต่การ COMMIT TRANSACTION หรือ ROLLBACK TRANSACTION ยังคงต้องมีอยู่
เพื่อบอกให้ระบบรู้ถึงการสิ้นสุดในการทำงานของแต่ละ Transaction
โดยปกติถ้ามีการใช้คำสั่ง BEGIN TRANSACTION และเสร็จสิ้นการทำงานกับ Database แล้ว
ถ้าไม่มีการ COMMIT TRANSACTION จะทำให้ข้อมูลถูก ROLLBACK โดย อัตโนมัติทันที
ดังนั้นถึงแม้จะกำหนดให้อยู่ใน mode การทำงานของ implicit transactions แล้ว
ก็ยังจะต้องมีการ COMMIT TRANSACTION อยู่ดี