PDA

View Full Version : سوال: مشکل با حذف در Relationship



lord_viper
چهارشنبه 21 مهر 1389, 09:47 صبح
با سلام
من یه بانک دارم که تو 2005 طراحی کردم یک سری از جداولش با هم Relationship هستن بنا به دلایلی مجبور شدم بیارمش رو 2008 ارتباط بین جداول در حالت Update Cascade هست حالا تو 2008 وقتی میخواهم از جدول اصلی یه رکورد حذف کنم که تو جدول جانبی ثبت هست گیر میده که تداخل داره و نمیزاره
در صورتی که قبلا (تو 2005)اینجوری نبود

tooraj_azizi_1035
چهارشنبه 21 مهر 1389, 09:51 صبح
سلام
منظورت از این که تداخل داره چیه؟ پیغامی رو که نمایش می ده رو ضمیمه کن و دوباره Relation هات رو از نظر نوع داده ای چک کن.

lord_viper
چهارشنبه 21 مهر 1389, 10:04 صبح
این پیغام رو میده


The DELETE statement conflicted with the REFERENCE constraint "FK_customer_group". The conflict occurred in database "processing", table "dbo.customer", column 'gorooh'.

حمیدرضاصادقیان
چهارشنبه 21 مهر 1389, 14:58 عصر
سلام.شما اگر گزینه Cascade delete رو نیز فعال کنید این مشکل رفع خواهد شد. وقتی که شما برای DElete هیچ پارامتری رو تنظیم نکنید و بخواهید از جدول اصلی رکوردی رو حذف کنید که در جدول زیرمجموعه اون هست بهتون خطا میده مگر اینکه با مقادیر Casdade,default یا null اونو تنظیم کنید که این مشکل رفع بشه.
موفق باشید

lord_viper
چهارشنبه 21 مهر 1389, 22:22 عصر
بله ولی مسئله اینجاست که نباید رکوردهای جدول زیر مجموعه پاک بشه برای محاسبات بهش نیاز هست
و اینکه تو 2005 چنین مشکلی وجود نداشت حالا تو 2008 اینجوری شده
راه دیگه ای بجر اینکه trigger بنویسم برای updateو بی خیال Relationship بشم وجود داره؟

حمیدرضاصادقیان
چهارشنبه 21 مهر 1389, 22:41 عصر
سلام.اخه کاری که شما میخواهید انجام بدید صحیح نیست.معنی نداره بچه ای وجود داشته باشه که پدری نداره!!!
خوب این کار شما مشکل غیر واقعی بودن دیتاها رو بوجود خواهد آورد.پس با این حساب باید تجدید نظری روی طراحی جداولتون داشته باشید.
چون اصل کار Relationship این هست که تضمین کنه هیچ فرزندی بدون پدر نیست.یعنی حتما این رابطه برقراره.
شاید توی 2005 کار دیگری انجام میدادید.وگرنه اینکار رو در 2000 هم به شما اجازه نمیده انجام بدید اگر باشه اشتباه است.