首页 > 解决方案 > 从 pyodbc 插入到 SQL Server 时出现“无效的对象名称”错误

问题描述

我正在尝试使用 pyodbc 模块将一些数据插入到 SQL Server 数据库中。

我有连接字符串工作。

以下代码列出了表中的两列。

 for row in cursor.columns(table='InvUtil'):
     print (row.column_name)

我在 InvUtil 表中看到以下两列:

server

termss

然后我尝试使用以下命令插入数据:

 cursor.execute("INSERT INTO InvUtil(server, termss) values (?, ?)", 'ten', 'eleven')

我收到以下错误。似乎 InvUtil 表名有问题。

Traceback (most recent call last):
  File "SQLpydobc.py", line 61, in <module>
    cursor.execute("INSERT INTO InvUtil(server, termss) values (?, ?)", 'ten', 'eleven')
pyodbc.ProgrammingError: ('42S02', "[42S02] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]**Invalid object name 'InvUtil'**. (208) (SQLExecDirectW)")

我希望脚本可以正常运行。我稍后在脚本中有一个提交命令,因此应该在列中看到数据。

标签: pythonsql-serverinsertpyodbc

解决方案


也许用 schema/db 指定完整的表名,如dbo.InvUtil

或者也许在连接字符串(Database=dboInitialCatalog=dbo)中指定默认数据库名称。


推荐阅读