Удалить SQL ошибок запроса - PullRequest
0 голосов
/ 07 мая 2020

Я получаю сообщение об ошибке из приведенного ниже утверждения; Он отлично работает как оператор выбора, но не работает как оператор удаления. Есть идеи, как заставить этот оператор работать как удаление? Кажется, ошибка C. *

DELETE C.*
FROM
  [CRM_VNB].[dbo].[CATALOGUE] AS C
  LEFT JOIN VNODAT.dbo.ARCUS AS A ON A.IDCUST = C.IDCUST
WHERE
  A.IDCUST IS NULL

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Это похоже на SQL Синтаксис сервера (из-за квадратных скобок вокруг идентификаторов).

В этом случае проблема связана с c.*; вместо этого вам следует использовать псевдоним таблицы «raw»:

delete c
from crm_vnb.dbo.catalogue as c 
left join vnodat.dbo.arcus a on a.idcust = c.idcust
where a.custid is null

Обратите внимание, что вы также можете сформулировать это с помощью not exists:

delete c
from crm_vnb.dbo.catalogue as c 
where not exists (select 1 from vnodat.dbo.arcus as a where a.idcust = c.idcust)
0 голосов
/ 07 мая 2020

Не используйте c. *

просто

DELETE  FROM [CRM_VNB].[dbo].[CATALOGUE] AS C LEFT JOIN VNODAT.dbo.ARCUS AS A ON A.IDCUST = C.IDCUST WHERE A.IDCUST IS NULL
...