PDA

View Full Version : append کردن دو جدول مشابه



ehsandbf
دوشنبه 03 مهر 1385, 08:05 صبح
سلام دوستان
من دوجدول مشابه از یک بانک رو دارم که میخوام اطلاعات جدول دوم را به انتهای جدول اول اضافه کنه ولی نمیشه.من از append استفاده مکنم ولی موقعی که run میکنم پیغام
duplicate output destination 'codep رو میده
راهنمایی کنید.ممنون

mzjahromi
دوشنبه 03 مهر 1385, 08:10 صبح
فکر میکنم این کوئری کارتون رو راه بندازه


Insert Into Table1
Select * From Table2

اگر هم احتمال تکرار کلید اصلی هست میتونید با شروط مناسب کنترلش کنید.

samaneh_h
دوشنبه 03 مهر 1385, 08:13 صبح
codep احتمالاً کلید هست و توی تیبل مقصدت هم وجود داره توی تیبل مبدا هم وجود داره

سنبله کار
دوشنبه 03 مهر 1385, 08:16 صبح
بله به نظر میاد روی فیلد codep در جدول مقصد ایندکس Noduplicate قرار داره و هنگام ورود داده های جدید یک مقدار مشابه قرار واردش بشه که اجازه ورود نداره .

ehsandbf
دوشنبه 03 مهر 1385, 08:21 صبح
این دو جدول کاملا مشابه هستند.این مشکل از اینجا پیش اومده که برنامه را روی دو دستگاه نصب کردن

سنبله کار
دوشنبه 03 مهر 1385, 08:29 صبح
همین می تونه باعث بشه فیلد احتمالا کلیدی codep دو یا چند مقدار مشابه بگیره که با خارج کردن اون از شرایط Noduplicate ممکنه مشکل مرتفع بشه .

moustafa
دوشنبه 03 مهر 1385, 12:27 عصر
فیلدها باید هم سایز ،هم نوع و داری یه یک نوع اعتبار سنجی باشند
و ازنوع کلید یا اندیکس بدون دادها ی تکراری نباشه

farnahad
جمعه 09 فروردین 1392, 16:46 عصر
همین می تونه باعث بشه فیلد احتمالا کلیدی codep دو یا چند مقدار مشابه بگیره که با خارج کردن اون از شرایط Noduplicate ممکنه مشکل مرتفع بشه .

سلام . چگونه از این حالت خارجش کنیم ؟

Abbas Amiri
جمعه 09 فروردین 1392, 18:32 عصر
سلام
سه حالت برای افزودن رکوردهای یک جدول به جدول دیگر که امکان وجود رکوردهای یکسان و یا حداقل با بعضی مقادیر فیلدهای یکسان ، داشته باشند وجوددارد .(صرف نظر از کلید اصلی)
1 - افزودن تمام رکوردهای جدول مبدا بدون هیچ محدودیتی
2 - صرفنظر کردن از رکوردهایی که در فیلدهای خاصی مقادیر یکسان دارند
3 - درج رکوردهای بی بدیل و جایگزینی رکوردهای با مقادیر فیلدهای یکسان
درحالت اول نباید هیچ فیلد یکتایی درجدول مقصد وجود داشته باشد و مثال پست قبلی کفایت می کند.


Insert Into Table1
Select * From Table2



درحالت دوم برای اجتناب از ورود رکورد با مقادیر فیلدهای یکسان از یک ساب کوئری همراه دستور فوق می توان بهره گرفت


Insert Into Table1
Select * From Table2 WHERE MyField Not IN(SELECT MyField FROM Table1)





و در حالت سوم در دومرحله ، یکبار رکوردهای غیر تکراری بادستورفوق و یکبار هم رکوردهای تکراری با دستورUPDATE در یک رکوردست جایگزین میشوند