python Pandas to_sql在mssqlserver中静默失败

jv4diomz  于 2023-04-19  发布在  Python
关注(0)|答案(1)|浏览(127)

当试图通过dataframe向mssql中的表插入少量数据时,to_sql()方法显示插入的行数,但数据库中没有插入。我知道还有其他类似的问题,但不幸的是没有解决我的问题。
这是我的代码:

  • 连接 *
engine = sa.create_engine('mssql://server/db_name?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server')
  • 验证码 *
conn = engine.connect()

conn.exec_driver_sql("SET IDENTITY_INSERT [dbo].[my_table] ON")

data_frame.to_sql('[dbo].[my_table]',conn , schema='dbo', if_exists='append', index=False)

我在这个项目中使用本地服务器和Windows身份验证。

sdnqo3pr

sdnqo3pr1#

这个

data_frame.to_sql('[dbo].[my_table]',conn , schema='dbo', if_exists='append', index=False)

应该是

df.to_sql('my_table',conn , schema='dbo', if_exists='append', index=False)

否则,它会在默认模式中创建一个名为“[dbo].[my_table]”的新表,并像这样加载它:

declare @p1 int
--set @p1=4
exec sp_prepexec @p1 output,N'@P1 int',N'INSERT INTO dbo.[[dbo]].[my_table]]] (id) VALUES (@P1)',3
select @p1

这将在默认模式中创建并加载一个名为“[dbo].[my_table]"的新表。

相关问题