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,尝试了你的查询,但没有成功:与我上面发布的结果相同。