Duplicate kayıtları sql’den silmek

Örneğin ETGQUOTADETAILTABLE tablosunda DATAAREAID, REFRECID, ROWNUM’dan oluşan unique indexe göre sonradan eklenmiş kayıtları silmek için:

DELETE FROM ETGQUOTADETAILTABLE WHERE
(RECID NOT IN
(SELECT MAX(RECID) AS recs
FROM ETGQUOTADETAILTABLE AS detailTable
GROUP BY DATAAREAID, REFRECID, ROWNUM))

NOT: Kayıt 2den fazla tekrar gösteriyorsa gösterdiği tekrar kadar scripti çalıştırmak gerekir.

 
    • Taha Durgut
    • Nisan 2nd, 2011 7:05pm

    Merhaba Fatih Bey;

    Paylaştığınız yazıyı okudum Fakat başka bi konuda problem var axapta üzerinden Silinemeyen bir tablo verisine SQL üzerinden ulaşıp silmek mümkünmüdür ve mümkünse nasıl bir yol izlemeliyim ?

    İyi ÇAlışmalar…

    • Tabiki mümkündür. Sql serverda normal durumda yapabildiğiniz butun işlemleri AX db’si içinde yapabilirsiniz. Ancak Ax’in iş mantığını devre dışı bıraktığınız için ve recID gibi bir alan olduğu için eklemeden uzak durmalısınız . Update ve delete işlemlerini yapabilirsiniz.
      Ancak dikkatli olmalısınız backup almanızı tavsiye ederim. Çok elzem olmadığı sürece kesinlikle direk db de işlem yapmamalısız.

  1. No trackbacks yet.