PDA

View Full Version : سوال: اجرای دو عمل هم زمان sql



khadem1386
دوشنبه 12 اسفند 1387, 18:36 عصر
سلام دوستان:

بعضی از وقتهای مواردی پیش می یاد که اجرای عملایت به دو قسمت تقسیم می شه.
هر دوی قسمتهای باید اجرا بشند و اگر یکی از این دوقسمت با error مواجه شد قسمت قبلی هم اجرا نشه.

مثلا اگر قرار از حساب کسی پولی برداشته بشه و به حساب دیگری واریز بهشه

اگر در ابتدا پول را از حساب نفر اول برداره ولی در هنگام ریختن پول در حساب دیگری دچار مشکل بشه باید عملیات اولی نیز cancel شده و error بدهد.

من به نوعی عملیات برخودم که مجبورم همین نگرش را داشته باشم.

نوعی Edit هست که مجبورم بجای ویرایش رکوردها، تمام رکوردهای مخصوصی را پاک کنم و بجای آن رکورهای جدید بریزم که مکنه تعدادشون از قبلی ها کمتر یا بیشتر باشه.

حالا اگر دستور پاک کردن SQL DELETE من درست کار کنه ولی دستور تولید رکوردهای جدیدم درست کار نکنه و به error برخورد کنه من تمام اطلاعات رکوردهایی که پاک کردم را از دست خواهم داد.
آیا راه حل ساده ای برای این منظور وجود داره.

با تشکر از کمک شما

mehdi.mousavi
دوشنبه 12 اسفند 1387, 19:29 عصر
سلام دوستان: بعضی از وقتهای مواردی پیش می یاد که اجرای عملایت به دو قسمت تقسیم می شه. هر دوی قسمتهای باید اجرا بشند و اگر یکی از این دوقسمت با error مواجه شد قسمت قبلی هم اجرا نشه. با تشکر از کمک شما

سلام.
چیزی که شما گفتید، تعریف یک عمل Transactional هست. در یک Transaction، یا همه مراحل باید انجام بشه (و به وضعیت نهایی برسیم) یا هیچیک از عملیات انجام نشه (و در وضعیت اولیه باقی بمونیم). برای استفاده از Transaction ها در SQL Server، لطفا به این آدرس رجوع کنید. (http://msdn.microsoft.com/en-us/library/ms188929.aspx)