2017-10-20 184 views
0

我试图批量插入一个csv到SQL服务器中的表。问题是,数据与目标表的列不匹配。目标表有多个在源文件中找不到的审核列。我找到的解决方案是插入视图。代码很简单:批量插入到SQL服务器与Python不工作

from sqlalchemy import create_engine 
engine = create_engine('mssql+pyodbc://[DNS]') 
conn = engine.connect() 
sql = "BULK INSERT [table view] FROM '[source file path]' WITH (FIELDTERMINATOR = ',',ROWTERMINATOR = '\n')" 
conn.execute(sql) 
conn.close() 

当我在SSMS中运行SQL语句时,它完美地工作。当我尝试从Python脚本内执行它时,脚本会运行,但表中没有数据。我错过了什么?

更新:事实证明,批量插入到普通表中也不起作用。

回答

0

在关闭连接之前,您需要调用commit()或SQL操作将在连接关闭时回滚。

conn.commit() 
conn.close()