删除 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
我从下面的语句中收到一个错误;它作为 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