Sql server 2008 r2 相关不存在错误:无法绑定多部分标识符“xxx”

Sql server 2008 r2 相关不存在错误:无法绑定多部分标识符“xxx”,sql-server-2008-r2,Sql Server 2008 R2,更新工作正常,但插入会产生以下错误: 无法绑定多部分标识符IQAlarm.CPC 您的第一次更新应该有一个FROM子句来支持相关性,但我并不惊讶没有FROM子句它就可以工作——这不是我编写它的方式 update IQAlarm set IQAD=GETDATE(),AD=AD+1 where exists (select CPC from Inquiry where Inquiry.IQST='ooo' and DATEDIFF(DAY,GETDATE(),Inquiry.QDL)<

更新工作正常,但插入会产生以下错误:

无法绑定多部分标识符IQAlarm.CPC


您的第一次更新应该有一个FROM子句来支持相关性,但我并不惊讶没有FROM子句它就可以工作——这不是我编写它的方式

update IQAlarm
set IQAD=GETDATE(),AD=AD+1
where exists (select CPC from Inquiry where Inquiry.IQST='ooo' 
  and DATEDIFF(DAY,GETDATE(),Inquiry.QDL)<=3 and Inquiry.CPC = IQAlarm.CPC);

insert into IQAlarm (CPC)  
select CPC from Inquiry   
where not exists (select CPC from Inquiry where Inquiry.IQST='ooo' 
and DATEDIFF(DAY,GETDATE(),Inquiry.QDL)<=3 and Inquiry.CPC = **IQAlarm.CPC**);
我觉得你的第二个是一团糟。也许这就是你的意思:

UPDATE IQAlarm
set IQAD=GETDATE(),AD=AD+1
FROM IQAlarm -- <----- you need this
where exists (select CPC from Inquiry 
  where Inquiry.IQST='ooo' and DATEDIFF(DAY,GETDATE(),Inquiry.QDL)<=3 
  and Inquiry.CPC = IQAlarm.CPC);

谢谢你的回答。我尝试了使用您的修改进行更新查询,但不起作用。更新查询中没有from。这里的参考页:插入查询非常有效!!我现在明白我的查询字符串有什么问题了。再多走一步,成为像你一样的职业选手@Ghashgul你发送的链接是更新统计数据而不是更新,你能解释一下什么不起作用吗?它起作用了!我不知道上次为什么会出错。虚惊一场。非常感谢你的帮助。但它仍然可以在没有来自的情况下工作。真奇怪。
insert into IQAlarm (CPC)
  select CPC from Inquiry
  where IQST='ooo' 
   and DATEDIFF(DAY,GETDATE(),Inquiry.QDL)<=3 
  and not exists (SELECT 1 FROM IQAlarm WHERE CPC = Inquiry.CPC);