GIAO TÁC TRONG
H QU N TR C S D LI U Ơ
SQL SERVER 2012
Giao tác
(Transaction)
Giao tác đc hi u nh khái ni m ch t p các l nh đc th c ượ ư ượ
hi n nh ng có s g n k t v i nhau và đc coi nh là 1 đn v ư ế ượ ư ơ
ho t đng, chúng ch thành công n u nh t t c thành công và ế ư
th t b i n u có 1 ph n t th t b i.ấạế ầửấạ
Tính ch t c a giao tác
Tính nguyên t (Atomicty): Thành công n u t t c thành công. ế
Tính nh t quán (Consistency): V n đm b o các ràng bu c.
Tính cô l p (Isolation): Th hi n m c đ riêng t c a t ng ư
giao tác. (M t giao tác đang thay đi có th bên ngoài th y hay
không th y)
Tính b n v ng (Durability): Khi h th ng có l i, nh ng thành ư
công c a giao tác v n đc ghi vào d li u. ượ
Giao tác
(Transaction)
V n đ đt ra cho vi c dùng giao tác
oKhi nào s d ng giao tác ?
oS d ng giao tác m c đ cô l p nào là phù h p ?
oPh m vi nh h ng c a giao tác là đâu ? ưở
oKh năng các ngôn ng l p trình k t n i v i h qu n tr ế
có s d ng c ch giao tác nh th nào ? ơ ế ư ế
Giao tác t ng minhườ
(Explicit)
Giao tác
Begin tran [tên_giao_tác]
lệnh | khối_lệnh
{ Commit tran | Rollback tran }
[tên_giao_tác]
T o đi m l u ư
save tran tên_điểm_lưu
H y nh ng gì sau đi m l u n u rollback ư ế
Giao tác – Đi m l u ư
(Save point)
begin tran t1
lệnh | khối_lệnh
save tran s1
lệnh | khối_lệnh
rollback tran s1 -- ch a ch m d t t1ư
lệnh | khối_lệnh
commit tran t1
=> Rollback tran s1 ch h y b k t qu t sau l nh ế save
tran s1 đn ch ế rollback tran s1 và sau đó là ti p t c ế
làm ti p (giao tác t1 v n còn).ế