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()
我正在尝试使用pyodbc模块截断一个表。但它不断抛出错误。
Traceback(上次调用(:文件"C:\Users/sean/Desktop/script.py",第6行,位于cur.execute("TRUNCATE Countrydatabase..region"(pyodbc。编程错误:('42000',"[42000][Microsoft][ODBC SQL服务器驱动程序][SQL Server]"Countrydatabase"附近的语法不正确。(102((SQLExecDirectW("(
当我使用"SELECT"语句时,相同的代码可以正常工作。
Truncate不起作用的问题似乎是在我显式调用con.close()
:之后,自动提交设置不起作用
con = pyodbc.connect("conn", autocommit=True)
或者,您可以在关闭前显式执行提交:
con.commit()
参考编号:https://stackoverflow.com/a/31611279/845584
如错误消息所示,您的SQL不正确。
应该是:
TRUNCATE TABLE region
(您不需要指定数据库,因为您已经连接到Countrydatabase。(
PeterX上面的评论是我的解决方案。在实例化命令时,我将autocommit=True设置为True,并且我的表开始被截断。
您尝试过用dbo作为前缀吗。类似于:dbo.tablename
我今天在玩它,遇到了同样的问题,添加dbo部分起到了作用:-(