"Неверный синтаксис рядом с" ГДЕ "в запросах на удаление - PullRequest
0 голосов
/ 22 июня 2019

Примерно в прошлом году у меня возникла проблема с тем, чтобы мои запросы на удаление распознавали условие where.Я не говорю о больших крупных сложных запросах.Даже маленькие простые запросы.

Обычно я спешу, поэтому вместо того, чтобы пытаться проанализировать проблему, я просто использую соединение в подзапросе, чтобы указать, какие строки следует удалить.Но теперь я хочу знать, что происходит.Я просматривал другие места в stackoverflow, но эти ошибки всегда были вызваны чем-то очевидным, например лишней запятой или попыткой использовать выражение where с оператором Insert values.

Сегодня виновником является следующее:

DELETE FROM prc_ContractChanges chgs
WHERE chgs.ChangeTypeID = 1 

Подобные конструкции прекрасно работали последние 19 лет.Так почему же это приводит к непристойной ошибке

Неверный синтаксис около WHERE.

Я пытался добавить комментарий в ответ на один ниже, но каждыйпопытка завершилась «произошла ошибка при добавлении этого комментария», поэтому пользовательский интерфейс редактирует исходный вопрос

Это предложение сработало.Так что мне пришло в голову, как бы вы определили несколько таблиц в удалении с объединением.Поэтому я поместил псевдоним в предложении удаления.Это сработало.Мне пришло в голову, что размещение псевдонима в предложении удаления с одним удалением таблицы также будет работать.Это сделал.

1 Ответ

1 голос
/ 25 июня 2019

Вы можете использовать один из следующих синтаксисов:

DELETE prc_ContractChanges 
FROM prc_ContractChanges chgs
WHERE chgs.ChangeTypeID = 1 

DELETE prc_ContractChanges 
WHERE ChangeTypeID = 1 
...