Skip to main content
 首页 » 编程设计

Python try except 在 sql server 中删除或创建表

2025年05月04日25mayingbao

我正在使用 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)