我只需要在另一个表中存在匹配行的情况下将表上的字段更新为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语句?
你离你不远…
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] )