ورود

View Full Version : جستجوي ركوردهاي مشترك دو جدول



dorna1985
سه شنبه 02 مهر 1387, 12:31 عصر
سلاممن ميخوام يك جدول را به يك جدول بزرگتر Exportكنم ولي ظاهرا به دليل وجود يك ركورد تكراري (مشترك بين دو جدول )و چون اين جداول فيلد pkدارند export صورت نمي گيره و خطاي duplicateو يك شماره سطر ميده كه سطر معادل اين شماره در هيچ كدام از اين جدول در ديگري موجود نيستروش درست چيه؟با استفاده از كرسر هم مشكلي حل نمي شه چون اين جداول 20-30 ميليون ركورد دارند؟آيا اين كد بهينه نيست؟راه حل اين مشكل چيه؟ممنون از توجهتون

کم حوصله
سه شنبه 02 مهر 1387, 13:47 عصر
سلام

اینگونه لحاظ شد که فیلد کلید شما کد می باشد




Insert Into shop.dbo.sanad (code,no,jdate,sanadkindcode,sanadtypecode,markazc ode,anbarcode,maliyearcode,ebtal,printed,timestamp )
Select code,no,jdate,sanadkindcode,sanadtypecode,markazco de,anbarcode,maliyearcode,ebtal,printed,timestamp
From sanad
Where code Not In (Select Code From shop.dbo.sanad)



ضمنا برای بدست آوردن مشترکات




Select Code From sanad
Where code In (Select Code From shop.dbo.sanad)

ASKaffash
چهارشنبه 03 مهر 1387, 08:37 صبح
باسلام
اگر جداول T1, T2 هم ساختار باشند و PK فیلد PraimaryKey باشد خواهیم داشت :


Declare @L BigInt
Declare TmPCursor Cursor For
Select PK From T1
Open TmPCursor
While 1=1 Begin
Fetch Next From TmPCursor Into @L
If @@Fetch_Status<>0 Break
If Not Exists(Select PK From T2 Where PK=@L)
Insert Into T2 Select * From T1 Where PK=@L
End
Close TmPCursor
Deallocate TmPCursor