删除 SQL 个查询错误

Delete SQL query errors

我从下面的语句中收到一个错误;它作为 select 语句完美运行,但作为删除失败。任何想法如何让这个声明作为删除工作?似乎在 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

这看起来像 SQL 服务器语法(因为标识符周围有方括号)。

在那种情况下,问题出在c.*;您应该改用 "raw" table 别名:

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)

不要使用 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