SQL Server更新查询更新两个表

时间:2017-07-26 10:26:03

标签: sql sql-server sql-server-2008

我正在使用SQL Server。我使用连接编写了更新语句。我尝试更新表中的一列,但我的update语句删除了另一个表中的值。我不明白为什么它会发生,即使我正在更新一列的值。

update rs
set rs.col1 = t.col2
from table1 r
join table2 rs on rs.Id = r.Id
join @temp t on t.Id = rs.Id

我正在尝试更新col1中的table2值,但会更新table2 col1table1

中的值

2 个答案:

答案 0 :(得分:0)

我认为您的联接存在问题。我也刚刚重命名了表中的一些别名,以使声明更清晰。

update t2
set t2.col1 = t.col2
from table1 t1
    join table2 t2 on t2.id = t1.id
    join @temp t on t.Id= t2.Id

答案 1 :(得分:0)

桌面上必须有级联规则。在表上可用的更新级联删除级联规则。

当您按Cascade规则更新一个表的列时,它将从另一个表中删除值。检查您是否在桌面上应用了Cascade规则。 如果Cascade规则适用于表table1和table2,则首先删除该级联规则,然后再次尝试更新它。