Ich bin vertraut mit der C# SqlBulkCopy-Klasse, wo Sie die 'WriteToServer' Methode durch eine DataTable übergeben können.Wie funktioniert SqlBulkCopy
Meine Frage ist, welche zugrundeliegenden Mechanismus in SQL Server verwendet wird, um diese Daten in großen Mengen einzufügen?
Der Grund, warum ich frage, ist, dass die Masseneinfügung, auf die in der Bulk Insert MSDN T-SQL-Hilfedatei verwiesen wird, eine zu importierende Datendatei erfordert. Erstellt SqlBulkCopy eine Datendatei?
Ich würde gerne diese Dinge verstehen, um herauszufinden, ob ich die Bulk-Insert-Funktionalität in SQL verwenden kann.
Wenn ich eine SQL-Anweisung schreibe, die alle Zeilen vorbereitet, um sie in eine bestimmte Tabelle einzufügen (Tausende von Zeilen), kann ich sie in die Zieltabelle einfügen? So etwas ist, wie ich es jetzt tue,
INSERT INTO sync_filters (table_name, device_id, road_id, contract_id)
SELECT * FROM dbo.sync_contract_filters (@device_id)
Und der dbo.sync_contract_filters ist eine Funktion, um alle Zeilen zu erzeugen, einzufügen. Kann das Bulk eingefügt werden?
So etwas, was mich interessiert, ist zusätzlich kann ich eine SQL-Anweisung erstellen, die die Zeilen erstellen, die ich für eine bestimmte Tabelle benötige, und dann sie in großen Mengen einfügen (das verwendet SQL vollständig). Kann BCP dies zum Beispiel tun? Ich hatte den Eindruck, dass bcp auch Tabellen verwendet. – peter