SQL:更新...设置...从......查询影响表中的所有行而不是特定的行

时间:2017-07-05 11:01:18

标签: sql-server

以下查询只会影响标题为“F0085'”的行。但是,它影响了所有行。将地址设置为' test'在每个Job_No上。请帮忙!

UPDATE TBTest.dbo.Site 
SET Address ='FDAN' 
FROM Jobs 
WHERE Job_No = 'F0085'

这是第一张表 enter image description here

3 个答案:

答案 0 :(得分:2)

你的语法错了。由于您的更新取决于其他表,因此您需要join它们。尝试:

UPDATE t
SET 
t.Address = 'FDAN'
FROM
TBTest.dbo.Site t
INNER JOIN JOBS j
ON t.Job_No = j.Job_No
WHERE j.Job_No = 'F0085'

答案 1 :(得分:0)

UPDATE TBTest.dbo.Site  ST
INNER JOIN Jobs JB ON JB.Job_No=ST.JOB_NO
SET ST.Address =JB.Address 

尝试以上查询。

希望这会对你有所帮助。

答案 2 :(得分:0)

谢谢大家。我需要找到公共列(ID列)。

UPDATE t
SET 
t.Address = 'FDAN'
FROM
TBTest.dbo.Site t
INNER JOIN Jobs j
ON t.Site_ID = j.Job_ID
WHERE j.Job_No = 'F0085'

我不完全理解别名是如何工作的。但似乎工作正常。