PDA

View Full Version : مشكل آپديت



sare443
چهارشنبه 13 شهریور 1392, 16:19 عصر
سلام دوستان
چه طور مي تونم از دوبار آپديت در tsql جلوگيري كنم:

UPDATE ACC_AccDocRow SET NBed=Bed ,NBes=Bes
,Bed=0,Bes=0
اگه اين دستور را دو بار اجرا كنم نتيجه صفر بر مي گرداند

مهدی هادیان2
پنج شنبه 14 شهریور 1392, 11:16 صبح
بسم الله الرحمن الرحیم

سلام دوستان
چه طور مي تونم از دوبار آپديت در tsql جلوگيري كنم:

UPDATE ACC_AccDocRow SET NBed=Bed ,NBes=Bes
,Bed=0,Bes=0
اگه اين دستور را دو بار اجرا كنم نتيجه صفر بر مي گرداند
با سلام
لطفا بیشتر راجع به مشکلتون توضیح بفرمائید.
موفق باشید.

اوبالیت به بو
پنج شنبه 14 شهریور 1392, 13:29 عصر
سلام دوستان
چه طور مي تونم از دوبار آپديت در tsql جلوگيري كنم:

UPDATE ACC_AccDocRow SET NBed=Bed ,NBes=Bes
,Bed=0,Bes=0
اگه اين دستور را دو بار اجرا كنم نتيجه صفر بر مي گرداند

قسمت WHERE رو مشخص نکردید.

فرض کنیم که مشخص نکرده باشید، شما دفعه اول وقتی اجرا می کنید تمام فیلد ها مقدارشون متناظر با چیزی که براشون تعیین کردید مقدار می گیرند پس ممکن هست 1 یا چند رکورد ویرایش شوند، اما وقتی دفعه دوم همین دستور رو اجرا کنید بدون شک هیچ تغییری اعمال نمی شود چون دفعه اول آن ها رو ویرایش کردید!

sare443
پنج شنبه 14 شهریور 1392, 17:19 عصر
یک جدولی به نام test داریم که دارای 4 فیلد nbed,nbes,bed,bes می باشد که مقدار هایی که در این فیلد ها نشسته به ترتیب:bed=1000,bes=2000 و nbedو nbes هردو صفر می باشند یا هر مقداری غیر صفر





حال می خواهم مقدار موجود در bes را در nbes ومقدار موجود در bed را در nbed بریزم بایستی دستور آپدیت استفاده کنم یک بار دستور آپدیت را اجرامی کنم و دستور جابه جایی مقادیر با موفقیت به اجرا میرسد حال اگه یک باردیگر این دستور را اجرا کنم همه مقادیر موجود در فیلد ها صفر می شود و نتیجه همهمقادیر موجود در فیلد ها صفر شده ..اگر اول دستور از begintran استفاده کنم و بعد از دوبار اپدیت می تونم rollback tran کنم و نتیجه را به حالتقبل از آپدیت برگردانم ولی نمی خواهم از rollback استفاده کنم می خوام بگم که بعد از begintran اجرای دستور اپدیت و در انتهاcommit tran کنم ...اگه دستور آپدیت رادوبار اجرا کنم بعد commit tran کنمنتیجه صفر میشه چه کار کنم که کاربری اگه به اشتباه دوبار آپدیت را زد نتیجه صفرنشود ?جلوی where چی بزارم؟؟؟

مهدی هادیان2
پنج شنبه 14 شهریور 1392, 21:30 عصر
بسم الله الرحمن الرحیم
با سلام
بنده امتحانی روی رکوردها چند بار عمل آپدیت رو انجام دادم ولی مسئله ای پیش نیامد؛ مرحله به مرحله تریس انجام بدید شاید مسئله از جای دیگر است.
موفق باشید.