我正在尝试使用Python从Pandas数据帧上载到SQL Server表,但是我无法使用sqlalchemy成功创建连接。我知道我首先需要使用create_engine()创建一个引擎对象,并使用engine.connect()创建一个连接对象,但是我在create_engine()中输入的任何字符串似乎都不起作用。我尝试了以下方法:
engine = create_engine('mssql+pyodbc://myServer/myDB')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Server=myServer;Database=myDB;')
conn = engine.connect()
和:
engine = create_engine('mssql+pyodbc://Driver={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
但所有结果均导致以下错误:
InterfaceError:(pyodbc.InterfaceError)('IM002','[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称未找到且未指定默认驱动程序(0)(SQLDriverConnect)')
我也尝试过:
engine = create_engine('mssql+pyodbc://Driver={SQL Server Native Client 11.0};Server=myServer;Database=myDB;Trusted_Connection=yes;')
conn = engine.connect()
这会导致以下错误:
DBAPIError:(pyodbc.Error)('IM010','[IM010] [Microsoft] [ODBC驱动程序 管理员]数据源名称太长(0)(SQLDriverConnect)')
虽然我可以像这样使用pyodbc成功连接:
conn = pyodbc.connect('DRIVER={SQL Server};Server=myServer;Database=myDB;Trusted_Connection=yes;')
我似乎无法针对sqlalchemy进行这项工作。
任何帮助将不胜感激。
答案 0 :(得分:1)
解决方案:
engine = create_engine('mssql+pyodbc://ERRSTSDBP2/ActPri?driver=SQL+Server+Native+Client+11.0')
感谢norbeq帮了我大忙!
答案 1 :(得分:0)
您可以尝试如下连接:
engine = create_engine('mssql+pyodbc://user:password@host:port/myDB')
conn = engine.connect()