【发布时间】:2021-07-21 10:51:23
【问题描述】:
当前我正在修补一些 mssql 和一个朋友创建的数据库。除了一个插入语句外,一切正常。
我试图从前端获取数据并将其放入表中。在稍微修改并失败后,我陷入了以下错误。
Incorrect syntax near 'INDEX'.
If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required.
我的插入语句如下所示。
INSERT INTO TestTable (SomeID,PointID) VALUES (?,?) WITH Index(?)'
那个?是占位符,因为我使用 Python Lib (PyODBC) 进行此操作
干杯!
【问题讨论】:
-
这样插入时指定和索引是没有意义的。你到底想达到什么目的?即您认为此声明与简单的
INSERT INTO TestTable (SomeID,PointID) VALUES (?,?);有何不同 -
问题是我实际上需要声明一个索引,因为它不是简单地计数。所以索引看起来像 1,2,3,2,3,1 。我也尝试过
INSERT INTO TestTable (SomeID,Index,PointID) VALUES (?,?,?)'的声明。但这会导致同样的错误。 -
Index是 SQL Server(以及我所知道的所有其他 DMBS)中的保留字,因此您需要使用[]来区分列名Index和关键字Index,即INSERT INTO TestTable (SomeID,[Index],PointID) VALUES (?,?,?)。通常最好避免使用保留字或特殊字符来命名任何对象,因为这会导致类似这样的问题。 -
@GarethD 这是错误谢谢 :) 介意将其发布为答案,以便我可以将其标记为解决方案?
标签: sql-server pyodbc