PDA

View Full Version : ادغام داده های دو دیتابیس



asemoon barooni
چهارشنبه 13 مهر 1390, 13:04 عصر
من دو دیتابیس مختلف دارم که هر کدوم دو جدول دارند که از لحاظ ساختاری کاملا باهم یکسان هستند و یکی از جدول ها کلید خارجی جدول دیگریه و هر کدام در دو دیتابیس حاوی داده هستند حالا من می خواهم داده های دو جدول دیتابیس رو به دیگری انتقال بدم . در ضمن کلید اصلی هر دو جدول هم Identity هستند حالا اگه بخوام این کارو با Import/Export انجام بدم چون کلید جداول Identity هستش و مشابه هم هستند اجازه نمی ده حالا باید چیکار کنم ؟؟ اگه راهنمایی کنید ممنون می شم.

pesar irooni
چهارشنبه 13 مهر 1390, 15:58 عصر
insert into db1.tb1 select fild2,fild3, .... from db2.tb1
اگه * بزنی فیلد id رو هم میخواد درج کنه که نمیشه. پس فیلد id رو نده تا خودش براش id درست کنه.

asemoon barooni
چهارشنبه 13 مهر 1390, 17:37 عصر
خیلی ممنون از پاسختون ولی من که گفتم دو جدول دارم که جداول با هم در ارتباطند حال وقتی که داده جدول اصلی رو درج کردم برای جدول دوم که کلید خارجی جدول اصلی است هم اینکارو کردم ولی حالا باید کلید خارجی ها با Id جدید فیلدهای وارد شده Update بشه اینجوری مشکل پیش میاد بعد تصور کنید من حدود 30 جدول دارم واسه همه این کارو بکنم که نمیشه من دنبال یک راه حل کلی هستم.

یوسف زالی
چهارشنبه 13 مهر 1390, 22:13 عصر
سلام دوست من.
کاری که شما می کنی مثل انتقال اطلاعات هست.
برای این کار بهترین کار استفاده از یک فیلد اضافی در جدول مقصد هست. این فیلد می تونه یکی از فیلد های پر نشده جدول هم باشه.
راه دیگه جداول موقتی هست.
راه اول رو توضیح می دم:
فرضم اینه که یکی از فیلدهاتون خالیه و از اون استفاده می کنم.

جدول مستر اول به نام MasterTbl از دیتابیس DB1:
ID Name Family ZipCode
جدول دیتیل اول به نام DetailTbl از دیتابیس DB1:
ID MasterID Grade TimeStamp

همین ها هم برای DB2.

اینسرت اول:
Insert into DB2.MasterTbl select Name, Family, ID from DB1.MasterTbl

دقت کنید که الان در ZipCode سریال ID وجود داره.

اینسرت دوم:
Insert into DB2.DetailTbl select (select ID from DB2.Master where ZipCode = DB1.DetailTbl.MasterID), Grade, TimeStamp from DB1.DetailTbl

در آخر هم خالی کردن یا حذف اون ردیف اضافه:
Update DB2.MasterTbl set ZipCode = 0

asemoon barooni
پنج شنبه 14 مهر 1390, 11:10 صبح
خیلی ممنون yousijoon جان من این روش رو نمی دونستم روشتون خیلی برام جالب و موثر بود... من در کل به دنبال روشی کلی میگشتم که بتونم خیلی آسون تر این کارو بکنم چون جداولم زیاده و کلیدخارجی ها هم در چندین جدول اومده این روش اجراش سخته اگه راه دیگری بود خیلی بهتر میشد که بتونم به صورت کلی این کارو بکنم.. نرم افزار RedGate Toolbelt هست ولی تو این حالت که داده ها رو مرج کنه جواب نمی ده...