我正在使用 pyodbc 创建或删除表。如果表已经存在,我写了一个函数来删除表。请看下面我的语法
try:
cur.execute('Drop table {}'.format(table_name))
except ProgrammingError:
cur.execute(create_table)
但是,我收到错误消息:
<ipython-input-79-fe0fe29a1e8e> in upload_to_SQL(file_name, skiprows, table_name)
26 try:
27 cur.execute('Drop table {}'.format(table_name))
--->28 except ProgrammingError:
29 cur.execute(create_table)
30
NameError: name 'ProgrammingError' is not defined
我确认 ProgrammingError 是我删除 sql server 中不存在的表时的错误消息。任何人都知道如何修改这个?
最佳答案
您遇到的异常是 NameError
,因为 ProgrammingError
未在当前范围内定义。 Exceptions
是对象,就像 python 中的其他所有对象一样,您必须从正确的位置导入或引用它们。
你可能想做
try:
cur.execute('Drop table {}'.format(table_name))
except pyodbc.ProgrammingError:
cur.execute(create_table)
关于Python try except 在 sql server 中删除或创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49328814/