[DB2] BEGIN VS BEGIN ATOMIC

ตอนแรกก็ไม่ได้เอ๊ะในอะไร คิดว่าเป็นเพียงแค่ชื่อ ธรรมดา แต่พอแก้ชื่อ Error เลย ผมเลยลองหาข้อแต่ต่างของ BEGIN ATOMIC ว่าต่างกับเจ้า BEGIN ธรรมดาอย่างไร โดยคำสั่ง BEGIN ATOMIC มีการจัดการ Transaction เ้สริมเข้ามา ถ้าคำสั่งภายใต้ BEGIN ATOMIC ... END นั้นเกิดปัญหาขึ้น DBMS จะ ROLLBACK ข้อมูลกลับทั้งหมดครับ ตัวอย่างการใช้งาน เช่น

[sql]
--Insert System User
BEGIN ATOMIC
DECLARE CREATETIME TIMESTAMP;
SET CREATETIME = CURRENT TIMESTAMP;
--INSERT System User (Username: DS_System, Password: DS_System)
INSERT INTO USERINVEST(USERID,USERNAME, FIRSTNAMEENG, LASTNAMEENG,FULLNAME, USERPOSITION, PASSWORD, PWDLASTCHANGE, ACTIVEFLAG,ACTIONFLAG,CREATEBY,CREATETIME)
VALUES (-1, 'DS_System', 'DEBUGGINGSOFT', 'SYSTEM', 'DEBUGGINGSOFT SYSTEM', 'SYSTEM USER', 'DDD60BB3F7E8AF7FBB071E5A79F8694DAE068A568F79AEDE5E09FBCB40D32378', CREATETIME, 'A','N',-1,CREATETIME);
--INSERT Group
INSERT INTO GROUPINVEST(GROUPID, GROUPNAME, ACTIVEFLAG, ACTIONFLAG, CREATEBY, CREATETIME)
VALUES(-1,'DS_System', 'A','N', -1, CREATETIME);
--Assign user to group
INSERT INTO GROUPUSER(GROUPID, GROUPCREATETIME, USERID, USERCREATETIME)
VALUES(-1,CREATETIME,-1,CREATETIME);
END
[/sql]


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.