"Invalid object name" 从 pyodbc 插入 SQL 服务器时出错

"Invalid object name" error on INSERT to SQL Server from pyodbc

我正在尝试使用 pyodbc 模块将一些数据插入 SQL 服务器数据库。

连接字符串正常工作。

下面的代码列出了table中的两列。

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

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

server

termss

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

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

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

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)")

我希望脚本 运行 没有错误。我稍后在脚本中有一个提交命令,所以应该在列中看到数据。

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

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