一尘不染

另一个表中存在匹配行时的UPDATE行

sql

我只需要在另一个表中存在匹配行的情况下将表上的字段更新为true,对于主表中该列当前为null的所有行。

这是我要实现的描述:

UPDATE [LenqReloaded].[dbo].[Enquiry] A 
SET [ResponseLetterSent] = 1
WHERE [ResponseLetterSent] IS NULL
   AND EXISTS
       (
           SELECT * FROM [LenqReloaded].[dbo].[Attachment] B 
           WHERE A.[EnquiryID] = B.[EnquiryID]
       )

这在语法上是不正确的。

我无法通过IF EXISTS …语句对其进行编码,因为没有从表中读取数据就没有[EnquiryID]。

我应该如何格式化我的UPDATE语句?


阅读 167

收藏
2021-03-17

共1个答案

一尘不染

你离你不远…

UPDATE A
SET A.[ResponseLetterSent] = 1 
FROM [LenqReloaded].[dbo].[Enquiry] A
WHERE A.[ResponseLetterSent] IS NULL 
    AND EXISTS ( SELECT * FROM [LenqReloaded].[dbo].[Attachment] B WHERE A.[EnquiryID] = B.[EnquiryID] )
2021-03-17