نمایش نتایج 1 تا 5 از 5

نام تاپیک: نحوه نوشتن یک INSERT پیچیده

  1. #1
    کاربر دائمی آواتار morika
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کرج
    سن
    33
    پست
    736

    Question نحوه نوشتن یک INSERT پیچیده

    سلام
    می خوستم ببینم همچین کد insert ی رو چجوری میشه نوشت
    من 2تا table دارم تو بانکم که عینا مثل هم هستن والبته ستونهای زیادی هم دارن
    یه دستور insert می خوام که داده هایی که تو table2 هستن و تو table1 نیستن رو از table2 کپی کنه تو table1 و اگه داده ای تو هردو table بود بره سواغ فیلد date و ببینه که اگه date رکوردی که تو table1 هست کوچیکتر از مقدار فیلد date در table2 هست؛ رکورد موجود در table1 رو به رکورد table2، آپدیت کنه.
    خودم که هرکاری کردم نشد.
    ممنون

  2. #2

    نقل قول: نحوه نوشتن یک INSERT پیچیده

    خوب فرض می کنیم F1 کلید اصلی جدول T1 و F2 کلید اصلی جدول T2 باشه ...

    قسمت اول :


    INSERTINTO T1
    (F1,....)
    SELECT
    (F2,....)

    FROM T2 WHERE F2 Notin(SELECT F1 FROM T1)
    آخرین ویرایش به وسیله baktash.n81@gmail.com : پنج شنبه 05 مرداد 1391 در 12:18 عصر

  3. #3

    نقل قول: نحوه نوشتن یک INSERT پیچیده

    اینم قسمت UPDATE


    UPDATE
    [FST].[dbo].[DocumentList]
    SET T2.[DATE] = T1.[DATE]

    FROM T2 JOIN T1 ON F2=F1
    WHERE
    F2
    IN(SELECT F1 FROM T1)AND T1.DATE<T2.DATE



    البته اگه قرار بود این کد توی برنامه من زیاد اجرا نشه ... مثلا هفته ایی یک بار این اتفاق بیفته ... من ترجیح می دادم از CURSOR استفاده کنم ... اونجا یکم کنترلم بیشتره ... اما اگه تعداد رکوردها زیاد باشه دیگه هفته ایی یه بار هم جواب نمی ده ... چون خود کرسر ممکنه اجرا شدنش بیشتر از یک هفته طول بکشه ... اما اگه توضیح بدی این کار برای چی هست شاید دوستان راه حل های بهتری هم ارائه بدند ...

  4. #4
    کاربر دائمی آواتار morika
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    کرج
    سن
    33
    پست
    736

    نقل قول: نحوه نوشتن یک INSERT پیچیده

    با تشکر از جوابهای شما آقای بکتاش. یه مشکل جدید برای من پیش اومده که مجبور شدم از دوتا بانک استفاده کنم. و از اونجایی که گفتین بری چی می خوام حالا کامل توضیح میدم که راهنماییم کنین.
    تو برنامه 2تا بانک هست. یکی به صورت local روی سیستم کاربر و یکی آپلود شده روی هاست. هردو بانک عینا مثل هم هستن. حالا وقتی کاربر می خواد بانک local رو آپدیت کنه برنامه باید table host رو چک کنه و اگه رکوردی توش بود که تو table local نبود او رکورد رو دانلود کنه و به table local اضافه کنه. همه رکوردها دارای یه فیلد کلیک و یه فیلد تاریخ date هستن که مشخص می کنه آخرین بار کی آپدیت شدن. حالا وقتی یه رکورد تو table host باشه و تو table local هم باشه برنامه باید به فیلد date رجوع کنه و اگه تاریخ رکورد table host بزرگتر از تاریخ table local بود او رکورد رو تو table local آپدیت کنه.
    این کاریه که من می خوام انجام بدم البه با دستورات #C انجامش دادم اما هم کد طولانی تری شد هم خیلی پیچیده. فکر کنم بشه همه اینکارارو با دستورات خود sql انجام داد بخاطر همین این سوال رو پرسیدم.
    ممنون

  5. #5

    نقل قول: نحوه نوشتن یک INSERT پیچیده

    اگه بخواین این کار رو توی سطح دیتابیس انجام بدید ... باید سرور ها بتونن همدیگرو ببینن ... توی سرور Local یه LinkServer به سرور اصلی ایجاد کنید ... بعد توی کدتون هر جا می خواین از جدول اصلی استفاده کنید اسم سرور رو هم اضافه کنید ...
    ولی فکر نکنم هیچ تضمینی وجود داشته باشه که این کار سریعتر باشه ...ضمن اینکه نوشتن کد توی لایه برنامه مدیریت خطا راحت تر هست ... و این کدی که من نوشتم برای اجرا شدن توی هر بار که کاربر می خواد اطلاعات رو ببینه یا ذخیره کنه خیلی سنگینه ...

تاپیک های مشابه

  1. نحوه نوشتن Attribute برای Propertyها
    نوشته شده توسط Hamedm در بخش VB.NET
    پاسخ: 4
    آخرین پست: سه شنبه 14 اردیبهشت 1395, 12:17 عصر
  2. نحوه نوشتن دستورات insert, edit, remove
    نوشته شده توسط hamidhws در بخش T-SQL
    پاسخ: 1
    آخرین پست: یک شنبه 15 اسفند 1389, 10:10 صبح
  3. نحوه نوشتن یا ارتباط ویروس با اسمبلی
    نوشته شده توسط heshmati در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 5
    آخرین پست: یک شنبه 18 دی 1384, 03:12 صبح
  4. نحوه نوشتن مستقیم مقادیر در تگ های HTML
    نوشته شده توسط JikSearch در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: سه شنبه 29 آذر 1384, 12:28 عصر
  5. نحوه نوشتن یک query
    نوشته شده توسط parnian در بخش SQL Server
    پاسخ: 2
    آخرین پست: دوشنبه 06 تیر 1384, 07:50 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •