ايران ويج

نسخه‌ی کامل: ROLLBACK
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من دو تا جدول در Sql Server تعریف کردم.
جدول اول یک سری اطلاعات کاربر وارد میکنه و ذخیره میزنه، بعد جدول دوم منصرف میشه وارد کنه -> بعد می خواهم اگه همچین اتفاقی افتاد اطلاعات جدول اول هم ذخیره نکنه و به اصطلاح عمل ROLLBACK انجام بده ولی نمیشه.

من دو تا Stored Procedures با تراکنش برای درج برای هر یک از جدول ها در نظر گرفتم و نوشتم. حالا چطوری میتونم اطلاعات جدول اول که کاربر وارد کنه بی اثر کنم؟؟؟

برنامه هم به این صورت کار میکنه که اول اطلاعات جدول اول باید وارد کنه بعد که ذخیره زد اطلاعات جدول دوم باید وارد کنه و اگه نخواست وارد کنه اون اطلاعاتی که در جدول اول نوشته هم ذخیره نشه؟؟؟؟

این یکی از کد های ذخیره اطاعات در جدول که نوشتم.


کد:
USE [Company]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[AddMasafatCity](@Mabda nvarchar(100), @Maghsad nvarchar(100), @Kilometer int) AS
Begin
 Begin Try
   BEGIN TRANSACTION
          INSERT INTO TMasafatCity
              (
                MMabda, MMaghsad, MKilometer
              )
          VALUES
              (
                @Mabda, @Maghsad, @Kilometer
              )
          COMMIT
 End Try
 Begin CATCH
   IF @@TRANCOUNT > 0
     ROLLBACK
 End CATCH
End

لطفا دوستان راهنمایی کنید با تشکر فراوان
سلام
به نظر من اول هر مرحله را داخل متغییر نگه دار وقتی اخرین مرحله را وارد کرد و ثبت زد باهم درج کن!
(۱۳-مهر-۱۳۹۶, ۰۰:۰۵:۱۲)Ghoghnus نوشته است: [ -> ]سلام
به نظر من اول هر مرحله را داخل متغییر نگه دار وقتی اخرین مرحله را وارد کرد و ثبت زد باهم درج کن!

نمیشه چون تعداد ذخیره اطلاعات در جدول اول خیلی بالاست
اگر انصراف زد دلیت کن :)
تاریخ بزار اگر تا فلان زمان اطلاعات کامل نشده اطلاعات این جدول را هم حذف کن
(۱۳-مهر-۱۳۹۶, ۰۱:۴۸:۵۱)Ghoghnus نوشته است: [ -> ]اگر انصراف زد دلیت کن :)
تاریخ بزار اگر تا فلان زمان اطلاعات کامل نشده اطلاعات این جدول را هم حذف کن

نمیشه چون اگه وسط پاک کردن برق ها بره و کامل پاک نشه مشکل ایجاد میکند.
سلام
يه جاب تعريف كن كه اطلاعات اضافي رو هر شب ساعت 12 از روي سرور حذف كنه
تراکنش رو داخل SP قرار ندید اگه نیاز هست قرار بدید یک متغییر اضافه برای SP تعریف کنید که اگه true بود تراکنش داخل SP اجرا بشه اگه نبود نشه
حالا میتونین برای اجرای 2 تا SP از یک تراکنش قبل از اجرای 2 تا SP استفاده کنید
سلام
چطوري مبين جان؟ خنده بلد − بهینه شده برای ورژن جدید 

مشتاق ديداريم آقا ... قلب عشق - بهینه شده برای ورژن جدید 


روشي كه گفتي خوبه ها ولي اگر در ثبت اطلاعات جدول دوم يا نمايش اطلاعات در فرم مربوطه لازم باشه كه اطلاعات جدول اول رو نمايش بدن ( كه احتمال چنين چيزي زياد هم هست ) مشكل خواهند خورد

017