TRUNCATE TABLE 在 Pyodbc 中不起作用

vv4*_*vv4 1 python sql sql-server pyodbc python-3.x

import pyodbc

con=pyodbc.connect('Driver={SQL Server};Server=New;Database=Countrydatabase;Trusted_connection=yes')
cur=con.cursor()
cur.execute("TRUNCATE Countrydatabase..region")   
con.close()
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 pyodbc 模块截断表。但它不断抛出错误。

回溯(最近一次通话):文件“C:/Users/sean/Desktop/script.py”,第 6 行,在 cur.execute("TRUNCATE Countrydatabase..region") pyodbc.ProgrammingError: ('42000', " [42000] [Microsoft][ODBC SQL Server 驱动程序][SQL Server]'Countrydatabase' 附近的语法不正确。(102) (SQLExecDirectW)")

当我使用“SELECT”语句时,相同的代码工作正常。

Ism*_*sma 5

正如错误消息所示,您的 SQL 不正确。

它应该是:

TRUNCATE TABLE region
Run Code Online (Sandbox Code Playgroud)

(您不需要指定数据库,因为您已经连接到 Countrydatabase。)


Pet*_*erX 5

我的截断不起作用的问题似乎是在我明确调用后自动提交设置不起作用con.close()

con = pyodbc.connect("conn", autocommit=True)

或者您可以在关闭之前显式执行提交:

con.commit()

参考:https : //stackoverflow.com/a/31611279/845584