admin
16 / February / 1970, 11:36 AM
وقتی از transaction استفاده می کینم که* بخواهیم* یک سلسله از دستورات بدون هیچ گونه خطایی پشت سر هم اجرا بشه،
اگه آخرین دستور هم بدون مشکل اجرا شد دستور commit رو فراخوانی می کنیم تا همه آنها یک جا در دیتابیس اعمال شود ،
اگه بین دستورات خطایی رخ*دهد (یا موارد دیگه مثل قطع شدن ارتباط و ... ) *دستور rollback رو اجرا می کنیم تا تغییرات قبلی را به حالت اول برگرداند.
مثال :
کد:
begin try *
* begin transaction * -- شروع *تراکنش * * *
* insert into table1 select 1,2,3 * * * *
update table2 set field1 = 10 where field2 = 20 * *
delete from table3 where field1 not in (1,2,3) * * *
* commit transaction * -- اتمام *تراکنش و اعمال یکپارچه دستورات در پایگاه داده
end try
begin catch * * *
* rollback transaction -- لغو دستورات بالا و برگشتن به حالت قبل از شروع تراکنش
end catch
اگه آخرین دستور هم بدون مشکل اجرا شد دستور commit رو فراخوانی می کنیم تا همه آنها یک جا در دیتابیس اعمال شود ،
اگه بین دستورات خطایی رخ*دهد (یا موارد دیگه مثل قطع شدن ارتباط و ... ) *دستور rollback رو اجرا می کنیم تا تغییرات قبلی را به حالت اول برگرداند.
مثال :
کد:
begin try *
* begin transaction * -- شروع *تراکنش * * *
* insert into table1 select 1,2,3 * * * *
update table2 set field1 = 10 where field2 = 20 * *
delete from table3 where field1 not in (1,2,3) * * *
* commit transaction * -- اتمام *تراکنش و اعمال یکپارچه دستورات در پایگاه داده
end try
begin catch * * *
* rollback transaction -- لغو دستورات بالا و برگشتن به حالت قبل از شروع تراکنش
end catch