删除查询中的“'WHERE'附近的语法不正确”

时间:2019-06-21 23:12:45

标签: tsql sql-server-2014

在过去的一年中,我的删除查询无法识别where子句时遇到了问题。我不是在谈论大型复杂的大型查询。甚至是一些简单的查询。

通常,我很着急,所以我没有尝试分析问题,我只是利用子查询上的联接来指定要删除的行。但是现在我想知道发生了什么。我曾在stackoverflow上看过其他地方,但这些错误总是由于明显的原因,例如多余的逗号,或试图将where子句与Insert values语句一起使用。

今天的罪魁祸首是:

DELETE FROM prc_ContractChanges chgs
WHERE chgs.ChangeTypeID = 1 

在过去的19年中,类似的构造运行良好。那么,为什么这突然引发淫秽错误

  

“ WHERE”附近的语法不正确。

我尝试添加注释以回应以下内容,但每次尝试均以“添加此注释时发生错误”结尾,因此UI正在编辑原始问题

以下建议有效。因此,我想到了如何在具有联接的删除中识别多个表。所以我把别名放在delete子句中。那行得通。在我看来,将别名放在具有单个表删除的delete子句中也将起作用。是的。

1 个答案:

答案 0 :(得分:1)

您可以使用以下语法之一:

DELETE prc_ContractChanges 
FROM prc_ContractChanges chgs
WHERE chgs.ChangeTypeID = 1 

DELETE prc_ContractChanges 
WHERE ChangeTypeID = 1