2017-03-29 3 views
0

Je travaille sur un projet dans lequel j'ai utilisé l'instruction d'insertion en bloc pour importer un fichier par lots .csv dans une table. Le problème que j'ai est que certains des enregistrements sont des doublons à ce qui est actuellement dans le tableau que je cherche à importer des données dans. Existe-t-il un moyen d'exécuter une instruction avec l'insertion en bloc pour vérifier des lignes spécifiques qui correspondent aux lignes de fichier en fonction de certains critères?Instruction SQL Server avec insertion en bloc

Je suis sûr qu'il y a un moyen de faire ce travail, mais je n'ai rien en tête.

+0

je suis assez sûr que nous avons déjà ce cas, quelque part ... dans l'autre sens serait tout simplement les insérer et supprimer les doublons – maSTAShuFu

+0

Existe-t-il une requête que je peux utiliser pour rechercher et supprimer des doublons dans un lot? – William

+0

Groupe en ayant count()> 1, pour trouver des doublons – maSTAShuFu

Répondre

0

Non, la déclaration BULK INSERT est optimisé pour vitesse brute - il insère simplement que les données le plus rapidement possible - mais il ne pas permettre une inspection ou des décisions soient prises lors de l'importation. Dans ce cas, l'approche habituelle consiste à insérer en bloc vos données dans une table de transfert , puis, après cela, ne copiez que les lignes qui ne sont pas des doublons dans la table de données réelle et supprimez tout le reste.

Mais c'est une étape distincte - ne peut pas être fait tout en en vrac insérant ....

+0

Nous vous remercions de vos commentaires. Je suis un niveau junior avec sql. Existe-t-il une requête que je peux utiliser pour rechercher des lignes de données par lot et soit imprimer tous les doublons, soit supprimer les doublons en fonction des critères d'une colonne correspondante? – William