table2.col2中的值更改时更新table1.col2 = table2.col2

时间:2011-11-14 20:04:28

标签: sql sql-server database

我有一张User表和工资表。因此,每当为用户创建工资单ID时,它将在工资表(payroll.payrollID)中更新。

我们可以将此值插入user.payrollID。我这样做是使用传统的java-JDBC程序定期更新。

UPDATE user
SET payrollID = (SELECT payrollID
                    FROM payroll
                    WHERE payroll.userID = user.userID)
WHERE user.payrollID IS NULL
 AND EXISTS(SELECT payrollID
                    FROM payroll
                    WHERE payroll.userID = user.userID)

注意:我无法访问工资单程序。所以我不能对工资单程序进行任何程序级别的更改以插入2个表

1 个答案:

答案 0 :(得分:2)

UPDATE u
  Set payrollID = p.payrollID
FROM User u
INNER JOIN Payroll p ON p.userID = u.userID
WHERE u.payrollID IS NULL

记住update语句可以使用from子句和/或任何连接中使用的表别名。

最后,我建议创建一个触发器来处理此更新。