Join 使用联接表中的联接和Where子句更新查询

Join 使用联接表中的联接和Where子句更新查询,join,sql-server-2012,Join,Sql Server 2012,我正在尝试更新一个表并加入另一个表,在论坛中找到了一些链接,以下是我准备的查询: update WO set WO.[Status] = 'Closed' from [Work Orders] as WO WHERE wO.[Seq.HD #] IN ( select [Incident #] from Incident INC where INC.[Category Description] =

我正在尝试更新一个表并加入另一个表,在论坛中找到了一些链接,以下是我准备的查询:

update WO 
    set WO.[Status] = 'Closed'
from [Work Orders] as WO
WHERE 
    wO.[Seq.HD #] IN (
        select [Incident #] 
        from Incident INC 
        where 
            INC.[Category Description] = 'test'
        and INC.Network = 'test'
    )
    and WO.[Category Description] in('test1', 'test2') 
不确定原因,但它正在更新[Work Orders]表中的所有记录

非常感谢您的帮助。

Tauceef

请尝试以下查询: 更新工单 设置工单。[状态]=“已关闭” 来自[工单]作为WO 内连接 选择[事件] 来自事故公司 哪里 INC.[类别描述]=“测试” 和公司网络=‘测试’ 工单上的a。[序号HD]=a[事件]

在哪里
WO.【类别说明】在“测试1”、“测试2”中,非常感谢您的回复

这是我的错误:我正在更新视图

我已经用表更新了查询,现在可以正常工作了

非常抱歉给您带来不便

问候,,
Tauceef

您可能会发现[Work Orders]表中的所有记录都与where子句匹配。如果您从[Work Orders]中选择*作为WO where WO。[Seq.HD]插入从Incident INC.中选择[Incident]where INC.[类别描述]='test'和INC.Network='test'和WO。[类别描述]在'test1',test2'中,您得到了您期望的结果吗?嗨,Cameron,谢谢您的回复。是,当我发出Select语句时,我得到了所需的内容。但当我使用相同的条件并更新表时,所有记录都会更新。我还注意到,更新后会显示一条消息,其中有7行已更新,但有20000多行符合上述条件,并且它正在更新所有超过100000行。您绝对确定这些数字正确吗?我的意思是,它显示了7行,更新了大约1000000个,匹配了大约20000个?我怀疑这种情况是否真的存在,因为这将表明SQL server存在严重问题。您如何知道此SQL脚本正在更新所有行?可能是其他脚本在更新行吗?这是生产数据库、本地开发数据库还是什么?嗨,Sunny,尝试了你的查询,但没有成功:与我上面发布的结果相同。