Sql server 基于另一列更新一列中的值

Sql server 基于另一列更新一列中的值,sql-server,tsql,Sql Server,Tsql,我想用BAUSER表中的值更新临时表@Users中的USER_FNM 表@用户: 我已经尝试过的是: update @USERS set USER_FNM = (select top(1) user_fnm from bauser where bauser.user_key = USER_KEY) 但这总是从BAUSER表返回第一个值。如何迭代@Users的每一行并更改USER\u FNM?SQL Server支持update语句中的联接。 假设用户密钥在bauser表中是唯一的,您可以简单

我想用BAUSER表中的值更新临时表@Users中的USER_FNM

表@用户:

我已经尝试过的是:

update @USERS 
set USER_FNM = (select top(1) user_fnm from bauser where bauser.user_key = USER_KEY)

但这总是从BAUSER表返回第一个值。如何迭代@Users的每一行并更改USER\u FNM?

SQL Server支持update语句中的联接。 假设用户密钥在bauser表中是唯一的,您可以简单地执行以下操作:

UPDATE t 
SET USER_FNM = bauser.user_fnm 
FROM @Users t
INNER JOIN bauser ON bauser.user_key = t.USER_KEY

UPDATE语句的上有多个示例。为什么要进行向下投票?因为简单的Google搜索“来自另一个表的sql UPDATE”会产生您可以使用的各种源。可能是重复的
UPDATE t 
SET USER_FNM = bauser.user_fnm 
FROM @Users t
INNER JOIN bauser ON bauser.user_key = t.USER_KEY