PDA

View Full Version : سوال: Transaction در SqlServer 2000



mgh64120
شنبه 30 آبان 1388, 23:49 عصر
سلام
ميخواستم بدونم كه اگر من يك Transaction رو Begin كنم و به يك جدول يك ركورد اضافه كنم. آيا تا زماني كه من Transaction رو Commit يا rollback نكردم كاربر ديگه اي مي تونه به اين جدول دسترسي(Add,Edit,Delete,Read) داشته باشه يا نه جدول Lock ميشه؟
و سئوال ديگه ميشه در يك Procedure يك Trans رو Begin كرد و در يك Proc ديگه اون رو ‍Commit يا RollBack كرد؟
من اين كار در QueryAnalyzar انجام دادم ولي يه پيغام ميده !


Server: Msg 266, Level 16, State 2, Procedure Sp_a, Line 65535
Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 0, current count = 1.


نميدونم اگر اين دو تا Proc رو توي محيط برنامه نويسيم (Vb.Net)اجرا كنم اين پيغام باعث Error ميشه يا نه؟

shahab2025
یک شنبه 01 آذر 1388, 01:14 صبح
ميخواستم بدونم كه اگر من يك Transaction رو Begin كنم و به يك جدول يك ركورد اضافه كنم. آيا تا زماني كه من Transaction رو Commit يا rollback نكردم كاربر ديگه اي مي تونه به اين جدول دسترسي(Add,Edit,Delete,Read) داشته باشه يا نه جدول Lock ميشه

تا جاييكه من ميدونم كاربر نميتونه ...

mgh64120
یک شنبه 01 آذر 1388, 17:05 عصر
جواب سوال دوم چي ؟



و سئوال ديگه ميشه در يك Procedure يك Trans رو Begin كرد و در يك Proc ديگه اون رو ‍Commit يا RollBack كرد؟
من اين كار در QueryAnalyzar انجام دادم ولي يه پيغام ميده !

کد:
Server: Msg 266, Level 16, State 2, Procedure Sp_a, Line 65535Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 0, current count = 1.
نميدونم اگر اين دو تا Proc رو توي محيط برنامه نويسيم (Vb.Net)اجرا كنم اين پيغام باعث Error ميشه يا نه؟


:متفکر:






:متفکر:

AminSobati
یک شنبه 01 آذر 1388, 23:28 عصر
سلام دوست عزیزم،
به تناسب نوع دستور ویرایشی، ممکنه رکورد، یا Page یا کل جدول Lock بشه. پس نمیشه یک قانون کلی ارائه کرد.
در مورد SP، وقتی موقع اجرا وارد SP میشین، تعداد Transactionها هر عددی هست باید موقع خروج از SP هم همون تعداد باشه

DataMaster
دوشنبه 02 آذر 1388, 00:13 صبح
یه بار من اشتباها یک Transaction رو Commit یا Rollback نکرده بودم و خطایی هم نمیداد ولی اگه یه بار یه خطا ساده تو سیستم رخ میداد تمام رکوردهای جدید همه می پریدند

AminSobati
دوشنبه 02 آذر 1388, 08:20 صبح
منطقیه! چون تمام ویرایشهای شما داخل Transaction قرار میگرفتند با وقتی این کار با خطا مواجه بشه، Rollback رخ میده