Fråga : Hur kan jag ta bort dubblettrekord i en SQL-databas utan ett primärt stämm?

Finns det a långt som tar bort dubbletttillträden på en SQL-serverdatabas som inte har ett primärt stämm? Jag kan ta bort dubbletttillträden, genom att använda UPPSÄTTNINGEN ROWCOUNT, befaller, men denna skulle take alldeles long, som jag skulle, måste att specificera varje rekord som har dubblett.  Detta som ska för att inte göra, sedan bordlägga har tusentals rekord.  Finns det ett lätt långt att ta bort alla dubblett?   " klar "

Svar : Hur kan jag ta bort dubblettrekord i en SQL-databas utan ett primärt stämm?

Kärt

Något att säga du har en bordlägga for example med efter sätta in
col1 col2, col3, col4, colN.

använd först det nedanfört befaller

Välj * in i Table1_Back från Table1

därefter nedanfört bruk befaller för att avkorta original bordlägger

Trunacate table1

använd därefter den nedanföra queryen för att sätta in rekord tillbaka med filtrerade möjlighetdubblettrekord.

sätt in in i Table1 (fieldListen)
Välj distinkt col1, col2, col3, col4, colN från Table1_back

för crosscheck av de ovannämnda tricken först du kör de 2 queriesna som nedanföra.

1) välj räkningen (*) från table1
2) Välj distinkt col1, col2, col3, col4, colN från Table1
och kontrollen hur mycket tillbaka nr.en av rekord gick förbi det 1 (första) queryresultatet, och hur mycket nr.en av ror gånget tillbaka by, understöder query. du bör defintly få den olika nr.en av ror för båda queries, och, om min ovannämnda trciks som suly ska, fungerar så för dig.
jag hade det samma problemet i förflutna var min databas hade ett ledar- att bordlägga av mebers och barnet bordlägger av medlemTree, och jag hade använt den ovannämnda techinqen, och den fungerar. Jag hoppas mig bör surt arbete för dig.

Tack & hälsningar.
Andra lösningar  
 
programming4us programming4us