2017-02-15 3 views
-1

BAUSER의 값을 사용하여 @Users의 임시 테이블 USER_FNM을 업데이트하고 싶습니다.다른 열을 기반으로 한 열의 값을 업데이트하십시오.

@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

왜 하향 투표합니까? – FrenkyB

+0

'다른 테이블의 SQL 업데이트'에 대한 간단한 Google 검색을 사용하면 다양한 소스를 얻을 수 있습니다. –

답변

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 
관련 문제