Você está na página 1de 3

Smvegis um Transactions.

Transaction arf a uppfylla fjra grunntti sem oft eru kallair ACID Acid stendur fyrir: Automicity o SQL ki keyrur sem ein heild. Allt keyrir ea ekkert Consistency o Ggn eru samhengi fyrir og efir agerina. ll heilindatkk vera a vera gangsett innan Transaction o S ager htt er gagnagrunnurinn settur upphaflegt horf Isolation o Transaction verur a vera einangru fr breytingum utanfr Durability o r breytinagr sem gerar eru vera a vera varanlegar

egar nota skal Transaction arf a setja mrk(Boundaries) Start: Hvar a byrja End: Hvar a enda

Tegundir af Transaction eru: AUTO COMMIT Alltaf keyrt egar ggnum er breytt (insert update delete). Allt er breytt vi ROLLBACK EXPLICIT Forritarinn setur mrkin sjlfur (boundaries) IMPLICIT Byrjun er sjlfkrafa, forritari setur endann

Gott er a nota sstembreytuna @@ERROR til a fylgjast me v hvort SQL ager hefur tekist ea ekki. if @@error <> 0

Dmi um notkun essu: begin transaction -- Einhver SQL skipun. t.d. insert into if @@error <> 0 rollback transaction -- Einhver nnur SQL skipun. t.d. insert into if @@error <> 0 rollback transaction -- Enn nnur SQL skipun. t.d. insert into if @@error <> 0 rollback transaction commit transaction Svo er lka til dminu a nota GOTO ????!!!!!

begin transaction -- Einhver SQL skipun. t.d. insert into if @@error <> 0 goto abortTransaction -- nokkurskonar kall function -- Einhver SQL skipun. t.d. insert into if @@error <> 0 goto abortTransaction -- Einhver SQL skipun. t.d. insert into if @@error <> 0 goto abortTransaction commit transaction print 'Transaction sett af sta' goto endTransaction -- nokkurskonar kall function abortTransaction: rollback transaction print 'Transaction klraist ekki' endTransaction: print 'Transaction klraist'

Dmi: create table numer_1 ( id int not null, email varchar(125), level int default 1, constraint numer_1_PK primary key(id) ) create table numer_2 ( id int not null, email varchar(125), level int default 1, constraint numer_2_PK primary key(id) ) create table numer_3 ( id int not null, email varchar(125), level int default 1, constraint numer_3_PK primary key(id) ) insert into numer_1(id,email)values(1000,'sigra@ir.is') insert into numer_2(id,email)values(1000,'sigra@ir.is') insert into numer_3(id,email)values(1000,'sigra@ir.is') select * from numer_1 select * from numer_2 select * from numer_3 begin transaction insert into numer_1(id,email)values(1001,'ragnarsson@simnet.is') if @@error <> 0 goto abortTransaction insert into numer_2(id,email)values(1001,'ragnarsson@simnet.is') if @@error <> 0 goto abortTransaction insert into numer_3(id,email)values(1000,'ragnarsson@simnet.is') if @@error <> 0 goto abortTransaction commit transaction print 'Transaction sett af sta' goto endTransaction abortTransaction: rollback transaction print 'Transaction klraist ekki' endTransaction: print 'Transaction klraist'

Você também pode gostar