2012-06-05 4 views
-1

다른 테이블의 열을 추가하려고하는 sql 테이블이 있습니다. 내가 alter table 쿼리를 실행할 때만 테이블에서 값을 가져 와서 연결하려는 컬럼과 일치시키지 않습니다.Sql 열에 값이 없습니다.

예를 들어, 표 1의 열 A와 표 2의 열 A가 일치합니다. ColumnATable1은 식별 번호이고 ColumnATable2는 설명입니다.

나는이 시도했지만 오류가 발생했습니다

...

alter table dbo.CommittedTbl 
add V_VendorName nvarchar(200) 
where v_venkey = v_vendorno 

그것은 내가 잘못된 구문을 하더군요 ... 사람이 작업을 수행하는 방법을 알고?

+1

두 문장으로 수행하십시오. alter table 문에서 where 절을 제거하고'update '를 사용하여 한 테이블에서 다른 테이블로 데이터를 이동하는 방법을 살펴보십시오. –

+2

현존하는 구조를 제공해 주시면 도움이 될만한 답변을 얻으실 수 있습니다. – swasheck

+3

왜 nvarchar (200) 값을 복제하여 두 테이블에 모두 저장합니까? 이는 중복 저장하는 데 낭비가되며 변경 될 가능성이있는 이름이기 때문에 둘 이상의 장소에서 업데이트해야합니다.일반적으로 대리 키가이 연결을 만드는 데 사용됩니다. –

답변

2
alter table dbo.CommittedTbl 
add V_VendorName nvarchar(200); 

go 

update c 
set c.V_VendorName = a.V_VendorName 
from CommittedTbl c 
join TableA a 
on c.v_venkey = a.v_vendorno; 

go 

여기 구조상으로 추측됩니다.

1
alter table 2 add column A <some_type>; 
update table2 set column A = (select column_A from table2 where v_venkey = v_vendorno); 

테이블과 열의 이름이 약간 혼란 스럽지만 그렇게해야한다고 생각합니다.

0

대신 JOIN 쿼리를 사용할 수 있습니까? 두 개의 테이블 또는 두 개의 테이블 부분을 조인하려면 JOIN을 사용해야합니다. 당신이 도움이 LINK

더 희망을 알 필요가 있다면

는 시작이를 보라!

1

SQL 내에서 여러 언어가 있습니다

DDL : 데이터 정의 언어 - 열을 추가 -이 스키마 (테이블, 컬럼의 구조, 데이터 유형)를 정의 테이블에 영향을주고 테이블 정의에 영향을 미치고 모든 행에 조건에 따른 일부 행이 아닌 새로운 열이 생깁니다.

DML : 데이터 조작 언어 - 테이블의 데이터에 영향을 주며 삽입, 업데이트 또는 기타 변경 사항이 감소합니다. 이걸로 업데이트하면 기준에 따라 데이터 (A WHERE 절에 와서 곳이입니다) INSERTUPDATE가 DML 문이있는 동안

ALTER

가하는 DDL 문이다.

2 명이 실제로하는 것처럼 혼합 할 수 없습니다.

열을 추가하려면 ALTER 테이블을 입력 한 다음 적절한 데이터를 포함하려면 INSERT 또는 UPDATE 열을 입력해야합니다.

관련 문제