无法使用sqlalchemy建立连接SQL Server

时间:2019-03-18 23:43:40

标签: python sql-server sqlalchemy

我正在尝试使用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进行这项工作。

任何帮助将不胜感激。

2 个答案:

答案 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()