View Full Version : سوال از transcation
sare443
چهارشنبه 18 اردیبهشت 1392, 10:27 صبح
سلام دوستان
من دستورات زیر را می نویسم و در انتها بعد از commit آن ها را rollback می کنم ولی redu نمیشه؟؟
use Northwind
go
begin tran
update Products set UnitPrice=0
update Customers set Country=N'USA'
delete from [Order Details]
commit tran
Rollback tran
باید بعد از رول بک همه دستورات به حالت اوله برگرده چرا نمیشه؟؟؟؟
یوسف زالی
چهارشنبه 18 اردیبهشت 1392, 10:31 صبح
سلام. RollBack بعد از Commit مثل نوشدارو بعد از مرگ سهرابه.
یا باید RollBack کنید یا Commit.
beh_develop
چهارشنبه 18 اردیبهشت 1392, 23:39 عصر
سلام دوستان
من دستورات زیر را می نویسم و در انتها بعد از commit آن ها را rollback می کنم ولی redu نمیشه؟؟
use Northwind
go
begin tran
update Products set UnitPrice=0
update Customers set Country=N'USA'
delete from [Order Details]
commit tran
Rollback tran
باید بعد از رول بک همه دستورات به حالت اوله برگرده چرا نمیشه؟؟؟؟
دوست عزیز فکر کنم کمی در مورد transaction نیاز به مطالعه بیشتری دارین.
ما وقتی از 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
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.