none
Record doppi RRS feed

Tutte le risposte

  • Ciao, puoi spiegare meglio che significa 'si sono generati' ?

    In merito all'eliminazione, solitamente si esegue una query di tipo DELETE.

    Però attenzione che la cancellazione di dati può  provocare gravi problemi all'applicazione.


    mario formosa

    venerdì 12 settembre 2014 19:24
  • Ciao AT160340,
    sempre su questo forum si è discusso già di un problema simile su 
    questo thread: Eliminazione record doppi.

    Leggilo in caso possa aiutarti!
    Ciao

    Paolo Pranzo

    venerdì 12 settembre 2014 19:41
  • Non ho trovato sul thread che mi hai segnalato alcuna soluzione valida

    Ho trovato poi altrove il comando seguente che mi ha risolto il problema

    DELETE T1 FROM (  SELECT ROW_NUMBER() OVER(PARTITION BY NomeChiave  ORDER BY [NomeChiave]) AS [RowNumber] ,
    NomeChiave  FROM  NomeTabella)  AS T1 WHERE(RowNumber > 1)
    

    domenica 14 settembre 2014 07:19
  • Non ho trovato sul thread che mi hai segnalato alcuna soluzione valida

    Ho trovato poi altrove il comando seguente che mi ha risolto il problema

    DELETE T1 FROM (  SELECT ROW_NUMBER() OVER(PARTITION BY NomeChiave  ORDER BY [NomeChiave]) AS [RowNumber] ,
    NomeChiave  FROM  NomeTabella)  AS T1 WHERE(RowNumber > 1)

    Ciao.

    Ho letto questo thread per curiosità e sono d'accordo con Mario Formosa quando dice che la cancellazione di record è un'operazione potenzialmente pericolosa. Il che, tradotto in parole più semplici, significa che se sai quello che fai fallo pure ma prima di farlo fatti almeno un backup del DB.

    Di più, potrebbe anche fallire se vi sono vincoli di integrità attivi.

    Ho letto il thread segnalato da Paolo Pranzo e devo dire, ad onor del vero, che non è esatto quanto da te affermato, cioè che non hai trovato in esso una soluzione valida.

    La soluzione che hai postato tu, infatti, sta proprio in quel thread ed è stata data da Alessandro Alpi quando cita il partizionamento per elemento (o elementi, aggiungo io) raggruppante.

    E, guarda caso, nell'esempio scritto viene usata proprio la funzione ROW_NUMBER.

    Quello che mi sento di aggiungere è che ROW_NUMBER è una funzione introdotta, se non sbaglio, con SQL Server 2005.

    Questa soluzione, pertanto, non è la più generale possibile.


    vibi6

    domenica 14 settembre 2014 16:01