python - 从 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)")
我希望脚本可以正常运行。我稍后在脚本中有一个提交命令,因此应该在列中看到数据。
解决方案
也许用 schema/db 指定完整的表名,如dbo.InvUtil
?
或者也许在连接字符串(Database=dbo
或InitialCatalog=dbo
)中指定默认数据库名称。
推荐阅读
- java - Java EE jsr352中的Spring批处理CompositeWriter等价物
- java - java 数组索引超出范围:第 17 行:java.lang.ArrayIndexOutOfBoundsException:索引 119 超出长度 26 的范围
- firebase - 我正在遍历一组 Firestore 文档。但是随着文档数量的增加,该函数会呈指数级增长
- c++ - 在自定义类上定义赋值运算符
- r - 时间序列中常数的 R 参数化
- docker - 无法连接到在 Docker 上运行的 Kafka
- c - 输入文本并按字母顺序排序
- python - 递归解析文件夹和子文件夹
- java - 为什么这个游戏循环实现的帧速率比每次迭代执行更多计算的帧速率低?
- javascript - JSON:在可变深度分支中访问特定的叶子