2017-07-18 2 views
0

Ich habe eine Tabelle mit 17 Spalten und ich muss Zeilen aus einer bestimmten Datei in diese Tabelle einfügen.Wie Einfügen mehrerer Zeilen in SQL Server?

Anzahl der Zeilen in dieser Datei sind ~ 4000.

Ich habe ExecuteMany(qry) Verfahren genähert mehrere Zeilen einfügen, aber ich habe letzte Spalten Daten wie:

rows = [('abc','x',....),(....),..] # 4k tuples in this list 

Jetzt habe ich Problem haben dies nebenbei Tupel zu einem Zeitpunkt in der letzten Abfrage

Kann jemand mir helfen, diese Werte an die letzte Abfrage zu übergeben?

sql = "INSERT INTO [dbo].["+tablename+"] VALUES {}".format(rows) 
cursor.executemany(sql) 

Update: SQL Server 2008 führt Fehler zum Einfügen von mehr als 1k Zeilen gleichzeitig

So wie dieses Problem mit irgendeiner anderen Art und Weise zu lösen?

+0

Warum fragen die Datei nicht direkt, anstatt versuchen, ein Array mit dynamischem SQL zu erstellen? –

+0

Beachten Sie, dass SQL-Server maximal 1000 Werte Liste akzeptiert, dass es Fehler werfen wird. –

+0

@JacobH Bulk einfügen ist nicht mein Ansatz, wie ich zufällige Dateien bekommen kann und ich brauche diese Spalten und Tabelle w.r.t Dateinamen. also habe ich diese Methode benutzt. –

Antwort

0

Sie sollten den XML-Datentyp MSSql Server 2008 verwenden, um alle Daten zu der gleichen Zeit zu senden, die XML-Knoten können mit Attributen oder Knotenwerte verwendet werden, wie Sie es brauchen