2017-03-29 6 views
0

Ich arbeite an einem Projekt, in dem ich die Bulk-Insert-Anweisung verwendet habe, um eine Batch-Datei .csv in eine Tabelle zu importieren.SQL Server-Anweisung mit Masseneinfügung

Das Problem, das ich habe, ist, dass einige der Datensätze Duplikate zu dem sind, was derzeit in der Tabelle ist, in die ich Daten importieren möchte. Gibt es eine Möglichkeit, eine Anweisung mit der Masseneinfügung auszuführen, um anhand bestimmter Kriterien nach bestimmten Zeilen zu suchen, die den Dateizeilen entsprechen?

Ich bin mir sicher, dass es einen Weg gibt, um das funktionieren zu lassen, nur nichts, was ich im Sinn habe.

+0

ich bin ziemlich sicher, dass getan werden wir diesen Fall bereits irgendwo haben ... die andere Art und Weise sie nur einfügen würde und Duplikate löschen – maSTAShuFu

+0

Gibt es eine Abfrage, die ich verwenden kann, um Duplikate in einem Stapel zu suchen und zu löschen? – William

+0

Gruppe mit count()> 1, um Duplikate zu finden – maSTAShuFu

Antwort

0

Nein, die BULK INSERT Anweisung für Rohgeschwindigkeit optimiert - es fügt nur, dass so schnell wie möglich, Daten - aber es nicht zur Inspektion oder Entscheidungen ermöglichen gemacht werden während des Imports. In diesem Fall ist es üblich, Ihre Daten in eine Staging-Tabelle zu stecken, und kopieren Sie danach nur die Zeilen, die keine Duplikate sind, in die eigentliche Datentabelle und verwerfen Sie alles andere.

Aber das ist ein separater Schritt - nicht während bulk Einfügen ....

+0

Vielen Dank für Ihr Feedback. Ich bin ein Junior-Level mit SQL. Gibt es eine Abfrage, die ich verwenden kann, um Batch-Datenzeilen zu durchsuchen und entweder alle Duplikate zu drucken oder Duplikate basierend auf den Kriterien einer übereinstimmenden Spalte zu löschen? – William

Verwandte Themen