SQL sèvè 2005 ki fèk intoduced fason a Rollback tranzaksyon yo ki nan SQL sèvè 2005
SET XACT_ABORT SOU
lè XACT_ABORT se sou. Deklarasyon sa yo T-SQL pral otomatikman Rollback tranzaksyon an lè erè ki te fèt nan deklarasyon.
SET XACT_ABORT SOU
SÈVI AK EMP
Kòmanse Tran
Mete nan Valè EmpInfo(1)
Mete nan Valè EmpInfo(1) — Deklarasyon sa a pral ogmante prensipal erè a kle
Mete nan Valè EmpInfo(2)
Komèt Tran
Liy lan premye deklarasyon ap egzekite san yo pa nenpòt ki erè. Erè a kle prensipal pral ogmante nan liy dezyèm. Men, tranzaksyon an blòk ann antye ki pa pral pran angajman paske XACT_ABORT la nan sou.
Ou ta dwe sonje ke XACT_ABORT mete fen aktyèl * pakèt la *, pa bay lòd nan tout. Lo yo separe ak mo kle nan ALE. Egzekisyon yo ap kontinye nan konmansman an nan pakèt nan pwochen.
Karakteristik sa a se tou nan SQL sèvè 2000, menm si li konpòte li yon ti kras diferan pou divès kalite erè.
Nan SQL 2000, gen ka kote XACT_ABORT neglije voye yon Rollback tranzaksyon an otomatikman.
Pou egzanp:
Mete nan yon non kolòn valab.
Mete nan yon kle prensipal ak IDENTITY_INSERT OFF.
Egzekite yon CHWAZI ki itilize yon udf ki pa-inexistant.
Sa yo kalite erè yo anjeneral akòz yon lòd ki mal fèt otè, pou yo pa rive nan operasyon an jou-a-jou yo nan pwogram ou sòf si yon moun transforms proje a. Men, mwen kont pou posibilite yo lè yo Scripts Ecrivain aktyalizasyon baz done lè deplwaye yon nouvo vèsyon an yon pwojè, jis nan deplwaman ka pa ale jan li te planifye.
Gen fason okipe sa yo erè. Komèt ou ta dwe nan pakèt la fè deklarasyon sa yo DML. Apre pakèt la (apre mo kle a ALE) ou ka tcheke @ @ TRANCOUNT a yo wè si li la ki pi gran pase zewo ak aji kòmsadwa. Anjeneral Rollback tranzaksyon an.
Tranzaksyon ka span lo, pou ou kapab siyen yon Rollback nan yon pakèt ki vin apre.