سایت ساز وبزیخرید بک لینک

کوئری برای افزودن مقدار کلید خارجی

شروع موضوع توسط fivestar ‏11 فوریه 2007 در انجمن زبان T-SQL

  1. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    دو تا جدول داریم که از طریق یه کلید خارجی بهم متصل هستن .یعنی یک فیلد داریم که در جدول اصلی بعنوان کلید اصلی تعریف شده و در جدول فرعی یه فیلد معمولیه.
    میخوام وقتی مقدار رو در جدول اصلی وارد می کنم بصورت اتومات در جدول فرعی هم مقدار فیلد وارد شود .

    چه کو ئری باید بنویسم؟؟؟
     
  2. بازدیدیار - افزایش بازدید سایت و سیگنال های برندخرید بک لینک
  3. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    چیز عجیب غریب و پیچیده ای نیست !

    چند تا جدول اصلی داریم به اسم SECTOR که در هر کدوم PrimaryKey اسمش هست ID که با اضافه شدن هر رکورد به مقدار اون یه دونه اضافه می شه

    یه جدول مادر داریم به اسم ATC که برای رابطه با تک تک جدول های SECTOR ء از هر جدول ء فیلد ID رو به عنوان کلید خارجی قرض می گیره

    یعنی تو جدول ATC یه فیلد داریم به اسم IDSECTOR1 که دقیقا مشخصه که همون فیلد ID در جدول SECTOR1 هست و یه فیلد داریم به اسم IDSECTOR2 که همون فیلد ID در جدول SECTOR2 هست و ......

    تو خود جدول ATC هم PrimaryKey اسمش هست ID که با اضافه شدن هر رکورد به مقدار اون یه دونه اضافه می شه
    حالا جای جالب داستان اینجاست D: تمام جدول های SECTOR و جدول مادر که اسمش ATC بود ء همشون تو یه فرم عملیات INSERT شون انجام میشه !


    من الان به راحتی می تونم برای تک تک جدول های SECTOR یه خط QUERY بنویسم و Insert رو براشون انجام بدم (به زبان سی شارپ)


    ;"(String insertsector1="INSERT INTO SECTOR1(P1,P2)VALUES(S1.text,S2.text

    (چون با اضافه کردن رکورد مقدار ID بطور خودکار +1 می شود ء دیگر نیاز نیست از طریق QUERY آن را وارد کنیم)

    ولی برای جدول ATC که فیلد کلید اصلی هر جدول SECTOR رو تو خودش داره
    برای پر کردن این فیلدها به مشکل خوردم

    ;"(?????,????) String insertsector1="INSERT INTO SECTOR1(IDSECTOR1,IDSECTOR2)VALUES


    علامت سوالها یعنی اینکه هیچ OBJ ندارم که مقدار IDSECTOR ها رو ازش بخونم !!!!!!!!!!!!!!

    پس ترجیح میدم یه کاری کنم که IDSECTOR ها بطور اتومات تو ATC هم اضافه شه D:
     
  4. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,284
    تشکر شده:
    17
    محل سکونت:
    North Pole
    چیکار میکنی ؟! خودت سوال میکنی خودتم جواب میدی ؟!؟!

    بهترین کار اینه که بیای و strored procedure بنویسی ، یه اینزرت معمولی میکنی بعد با [email protected]@ آیدی (یا همون کلید اصلی جدول الیه رو میگیری ) بعد میای و با داشتن اون آیدی دوباره یه اینزرت دیگه میکنی !

    اگر بلد نیستی استورد پروسیجر بنویسی و مسممی که حتما برنامه نویسی کنی بهتره دو روز وقت بذاری و یه چیزایی یاد بگیری !
     
  5. fivestar

    fivestar Registered User

    تاریخ عضویت:
    ‏14 نوامبر 2006
    نوشته ها:
    73
    تشکر شده:
    0
    دمتون گرم که کمک کردین . رفتم دنبالش یه تابع گیر آوردم که و قتی میزاریش تو sp و اجرا می کنی دقیقا آخرین مقدار فیلد ID رو بر می گردونه

    (' اسم جدول') SELECT IDENT_CURRENT

    حالا می خوام برای تک تک جدولهای sector از این تابع استفاده کنم . نیاز دارم که مقدار هر دستور select رو بریزم تو یه متغیر محلی که وقتی خواستم insert کنم راحت باشم !

    دستوری پیدا نکردم که بتونم نتیجه هر SELECT رو بریزم تو یه متغیر محلی . چی کار کنم ؟؟؟؟
     
عسل طبیعی و گرده گل ایرانیخرید و فروش اتوماتیک ارزهای الکترونیکی