在python腳本中,我需要在一個數據源上運行查詢,並將該查詢的每一行插入到不同數據源的表中。我通常會用一個帶有tsql鏈接服務器連接的插入/選擇語句執行此操作,但是我沒有鏈接到此特定數據源的鏈接服務器連接。基本的pyodbc批量插入
我無法找到一個簡單的pyodbc這個例子。這裏是我怎麼做,但我猜在循環內執行插入語句是非常緩慢的。
result = ds1Cursor.execute(selectSql)
for row in result:
insertSql = "insert into TableName (Col1, Col2, Col3) values (?, ?, ?)"
ds2Cursor.execute(insertSql, row[0], row[1], row[2])
ds2Cursor.commit()
是否有更好的批量方式插入記錄與pyodbc?或者這是一個相對有效的方式來做到這一點。我使用的是SqlServer 2012,以及最新的pyodbc和python版本。
只是說明,executemany實際上並沒有真正做bulkinsert。在場景的後面,插入1仍然是1.它真的是一個包裝,允許數據更加pythonically來源。這SO帖子提出了一個適當的bulkinsert。 http://stackoverflow.com/questions/29638136/how-to-speed-up-with-bulk-insert-to-ms-server-from-python-with-pyodbc-from-csv – casbby