2014-12-26 2 views
0

다시 한번 액세스에 관한 질문이 있습니다. Access 프로젝트를 SSIS 프로젝트로 번역하고 있습니다. 쿼리의 분석 중에 나는 다음과 같은 것을 발견했습니다 :Access에서 테이블 업데이트

update A inner join B on A.Column1 = B.Column1 
and A.Column2 = B.Column2 
set A.column3 = B.column3 
A.column4 = B.column4... 
B.column# = B.column#; 

제 질문에 대한 마지막 문장입니다. 동일한 테이블의 동일한 열 (B.column # = B.column #) 사이에 설정을 만드는 목적은 무엇입니까? 내 직업 친구는이 쿼리를 아무런 문제없이 실행했지만 SQL로 변환하려고 할 때 오류 메시지가 나타납니다. "... 다음 오류로 인해 실패했습니다 :"다중 부분 식별자 "B.column # "바인딩 할 수 없습니다."

답변

0

테이블 B의 열을 업데이트하려고하면 하나의 업데이트 문으로 2 개의 테이블을 업데이트하려고하는데 SQL의 한 문에서 여러 테이블을 업데이트 할 수 없으므로 A와 B를 모두 업데이트해야하는 경우 두 명령문이 단일 명령으로 취급되도록 트랜잭션 내에서 여러 명령문을 사용해야합니다.

하지만 암시 하듯이 테이블 B의 열을 자체적으로 업데이트하는 것이 합리적입니다.이 작업을 수행하고자하는 유일한 이유는 트리거가 있다는 것입니다 어떤 열이 업데이트되고 있는지 확인하고 있습니다.