我正在使用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
col1
和table1
答案 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,则首先删除该级联规则,然后再次尝试更新它。