SQL Server根据另一个表

时间:2016-03-25 19:00:35

标签: sql sql-server database

这是我的情况:

提示: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_CONTRACTCONTRACT的补充。

问题

如何在SQL Server中构建一个能解决我问题的函数,过程或查询?我可以创建一个同时更新满足此条件的所有列的函数吗?我可以通过查询解决迷你解决方案,但我无法加入所有这些迷你查询来解决我的问题。

1 个答案:

答案 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_IDCONTRACTS值,其中NUMBER_IDENTITY值在两个表中相同。