我有两个FK ojit_code和UserProfile_Id
的表。该表包含位字段,我需要更改该值。
我有两个临时表:
第一个表#temp2 :
EmailAddress,
UserProfile_Id
第二张表 #temp :
EmailAddress,
Service_Id
该语句不起作用:
UPDATE MailSubscription SET BitField=1
where UserProfile_id IN ( SELECT UserProfile_Id from #temp2 )
and Service_id IN ( SELECT ServiceId from #temp)
我知道为什么它不起作用,但是不知道如何修复它才能正常工作。
我需要将
Service_Id
更改为bitField
,其中元组(UserProfile_Id,Service_Id)已加入#temp和#temp2,但我无法在mssql中这样写。 最佳答案
UPDATE M
SET M.BitField=1
from MailSubscription M
inner join #temp2 t2 on M.UserProfile_id=t2.UserProfile_Id
inner join #temp t on M.Service_id=t.ServiceId
and t.EmailAddress=t2.EmailAddress