View Full Version : updateکردن همزمان دوتا تیبل
A_1397
یک شنبه 19 شهریور 1391, 09:43 صبح
دوستان چطوری می تونم همزمان دو تا table رو توی یک دستور آپدیت کنم؟
baktash.n81@gmail.com
یک شنبه 19 شهریور 1391, 11:59 صبح
شما نمی تونید دوتا جدول رو همزمان Update کنید ولی می تونید یه جدول رو بر اساس چند جدول Update کنید ... شما مشکلتون رو بیشتر توضیح بدید شاید روش های دیگه ای مثل Transaction بشه براش پیدا کرد .
A_1397
یک شنبه 19 شهریور 1391, 15:17 عصر
من فرمی دارم که اطلاعاتش را از داخل دو یا بیشتر تیبل می خونه. حالا موقع ویرایش هم باید اطلاعات داخل اون جداول آپدیت بشن. و من میخام ببینم آیا میشه دستور آپدیت رو بصورتی نوشت که آپدیت تمام جداول رو داخل یه دستور بنویسم؟ مثلا:
update table1,table2 set table1.field1,....value(..)
حمیدرضاصادقیان
دوشنبه 20 شهریور 1391, 09:10 صبح
سلام.
شما میتوانید در داخل یک Transaction اینکارو بکنید که هردو جدول باهم Update شوند و اگر خطایی رخ داد تغییرات در هیچکدام رخ ندهد.
A_1397
دوشنبه 20 شهریور 1391, 11:51 صبح
سلام.
شما میتوانید در داخل یک Transaction اینکارو بکنید که هردو جدول باهم Update شوند و اگر خطایی رخ داد تغییرات در هیچکدام رخ ندهد.
میشه لطفا بیشتر توضیح بدین. متاسفانه اطلاعاتی راجع به Transaction ندارم. :خجالت:
حمیدرضاصادقیان
دوشنبه 20 شهریور 1391, 15:22 عصر
ببینید یک Transaction با استفاده از دستو رBegin Tran آغاز و با Commit یا Rollback خاتمه می یابد.
به مثال زیر توجه کنید.
Begin Tran
Update Table1 Set Field1=10
Update Table2 Set Field2=20
Update Table3 Set Field3=30
Commit Tran
اگر در داخل این دستور یکی از دستورات Update اجرا نشود کل دستورات اجرا نخواهند شد.
البته این روش مشکلاتی نیز داره از قبیل اینکه اگر داده ها خیلی حجیم باشند ممکنه عملیات Update طول بکشه و جداول شما Lock بشه اونوقت کاربرانی که میخواهند از اون جداول به صورت گزارشی استفاده کنند به مشکل برمیخورند که میشه با روشهای دیگه نیز از اون مخمصه نجات پیدا کرد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.