2013-03-20 2 views
1

원하는 기능을 수행하기 위해 올바른 기능을 사용하고 있는지 확실하지 않습니다. 여기에 지금까지 가지고있는 코드입니다 : 자산에 묶여있는 전화 내선의 번호를 가진 열 (내선)가다른 테이블과 키를 공유하는 테이블에 열 삽입

insert into assets(owner) 
(select a.Username as whatIwant 
from dbo.DIRECTORY a join dbo.ASSETS b 
on a.Ext = b.Ext) 

내가 자산 (dbo.assets)와 하나 개의 테이블이있다. 다른 테이블 (dbo.directory)에는 해당 내선 번호 (사용자 이름)에있는 사람의 이름과 연결된 내선 번호 (내선 번호)가있는 열이 있습니다.

전화 확장에 연결된 사람의 사용자 이름을 새 열인 소유자 인 dbo.assets에 삽입하고 싶습니다. 따라서 ext는 사용자 이름과 일치해야합니다. 대신 병합을 사용해야합니까?

+2

1) 당신은 단순히 DBO에서 사용자 이름 컬럼에 사용자 이름 열을 설정 레코드를 업데이트 할 레코드가 이미 자산에 존재하는 변화 2)의 업데이트로 삽입을 변경 커밋 표 1에 새 열을 추가 .directory – xQbert

답변

1

사용중인 RDMS에 대해서는 언급하지 않았습니다. 어느 쪽이든 먼저 테이블에 열을 추가해야하며 열 값을 설정하는 행을 업데이트해야합니다. SQL Server에서는 다음과 같이 보입니다.

ALTER TABLE assets ADD owner VARCHAR(20) NULL 



update a 
set a.owner = b.username 
from assets a 
inner join directory b on a.ext=b.ext 
+0

죄송합니다. 예 SQL Server 08을 사용하고 있습니다.이 쿼리는 훌륭하게 작동했습니다. 감사합니다. –

관련 문제