2017-10-19 16 views
0

En utilisant SQL Server Management Studio 2017. J'ai importé une liste des e-mails environ de 20millions, juste couru le code ci-dessous pour supprimer tous les doublons:requête SQL terminée avec succès, mais pas

WITH CTE AS 
(
    SELECT *,ROW_NUMBER() OVER (PARTITION BY email ORDER BY email) AS RN 
    FROM dbo.cleanemails 
) 

DELETE FROM CTE WHERE RN<>1 

Il dit requête exécutée avec succès, et sous l'onglet Messages, 10millions de lignes sont affectés (attendus) mais il n'y a pas d'onglet Résultats. Je souhaite exporter dans un fichier csv. J'ai vérifié le paramètre d'exécution car les paramètres Parseonly et Noexec provoquent parfois des problèmes mais ils étaient tous les deux OFF.

Je suis relativement nouveau à SQL, toute aide serait appréciée. écran tourné en studio enter image description here paramètres d'exécution enter image description here

+1

Vous faites une suppression, cela supprime simplement les enregistrements. Si vous voulez afficher les enregistrements, vous devez sélectionner – HoneyBadger

+1

Il n'y a pas d'instruction select ici. Vous avez effectué un DELETE qui n'affiche rien d'autre que le rowcount. Qu'attendez-vous pour la sortie? –

+0

La prochaine fois s'il vous plaît télécharger une capture d'écran avec une meilleure qualité afin que nous puissions réellement voir des choses (la capture d'écran du studio). – Moseleyi

Répondre

5

Si vous voulez voir les enregistrements supprimés, vous pouvez utiliser la clause OUTPUT

;WITH CTE 
    AS (SELECT *, 
       Row_number()OVER (PARTITION BY email 
        ORDER BY email) AS RN 
     FROM dbo.cleanemails) 
DELETE FROM CTE 
output deleted.* 
WHERE RN <> 1