在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