2017-02-15 161 views
-1

我想在臨時表@Users中更新USER_FNM,其值爲BAUSER基於另一列更新一列中的值

@Users

DECLARE @USERS TABLE 
(
    USER_KEY INT, 
    USER_FNM VARCHAR(50), 
    USER_LNM VARCHAR(50), 
    USDE_HSU DECIMAL(8,2), 
    [110000003] DECIMAL(8,2), 
[120000002] DECIMAL(8,2), 
[120000003] DECIMAL(8,2) 
) 

我已經嘗試過是這樣的:

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

但這總是從BAUSER表中返回的第一個值。如何迭代每行@Users並更改USER_FNM

+0

上有[MSDN文章(https://msdn.microsoft.com/en-us/library/ms177523多個實例.aspx)爲'UPDATE'語句。 –

+0

爲什麼downvoting? – FrenkyB

+0

因爲簡單的谷歌搜索'從另一個表中更新sql'會產生你可以使用的各種資源。 –

回答

1

SQL Server支持更新語句中的連接。
假設user_key在表bauser獨特的,你可以簡單地這樣做:

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