这是我的情况:
提示:2个表上的COLUMN(NUMBER_IDENTITY)具有相同的值,但这2个表彼此没有关系(这是我选择的情况)
早期数据库状态
CONTRACTS
(ID,NUMBER_IDENTITY,USER_ID)SUB_CONTRACTS
(ID,NUMBER_IDENTITY)立即
我有表CONTRACTS
(ID,NUMBER_IDENTITY,USER_ID)
我在SUB_CONTRACTS
中添加了新列(ID,NUMBER_IDENTITY,USER_ID)
我的问题
我应该使用USER_ID
中存在的相同值更新SUB_CONTRACTS
中的CONTRACTS
列。我可以执行此更新,因为两个表中的NUMBER_IDENTITY
列是相同的。因此SUB_CONTRACT
是CONTRACT
的补充。
问题
如何在SQL Server中构建一个能解决我问题的函数,过程或查询?我可以创建一个同时更新满足此条件的所有列的函数吗?我可以通过查询解决迷你解决方案,但我无法加入所有这些迷你查询来解决我的问题。
答案 0 :(得分:3)
update SUB_CONTRACTS
set USER_ID = CONTRACTS.USER_ID
from SUB_CONTRACTS
inner join CONTRACTS on (SUB_CONTRACTS.NUMBER_IDENTITY = CONTRACTS.NUMBER_IDENTITY)
此语法适用于SQL Server。它会更新USER_ID
中的所有SUB_CONTRACTS
值,以匹配USER_ID
中CONTRACTS
值,其中NUMBER_IDENTITY
值在两个表中相同。