SQLAlchemy df.to_sql MSSQL

时间:2016-11-09 20:36:40

标签: python sql-server sqlalchemy

我正在尝试将数据从我拥有的数据库移动到数据库中我只具有读/写权限(作为临时表)。但是,我收到一个错误。请参阅以下代码:

import pandas as pd
import pyodbc
import sqlalchemy

con = pyodbc.connect(r'Driver={SQL Server};Server=MYServer;Database=DB_People;Trusted_Connection=yes;)

sSQL = "SELECT * FROM tbl_People;"

df = pd.read_sql(sSQL, con)

con.close()

con = pyodbc.connect(r'Driver={SQL Server};Server=NOT_MyServer;Database=DB_People;Trusted_Connection=yes;)

sSQL = "CREATE TABLE [##People Table] (p_Name varchar(25), p_DOB char(10));"

con.execute(sSQL)

con.committ()

engine = sqlalchemy.create_engine('mssql://NOT_MyServer/DB_People?Driver=SQL+Server+Native+Client+11.0?trusted_connection=yes')

df.to_sql("##People Table")

我收到错误:

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

有关问题的任何线索?我在连接中指定了一个驱动程序,我知道Temp表存在,因为当我通过SSMS连接时,我可以查询表(尽管此时没有记录。

1 个答案:

答案 0 :(得分:0)

好像我发现了问题:

  1. 由于df.to_sql创建表
  2. ,因此不需要“创建表”功能
  3. 而不是驱动程序名称中的“+”,我可以用%20
  4. 替换它们

    这对我有用。