2016-10-05 3 views
1

다음을 실행할 때 위의 오류가 발생합니다.오류 : 다중 부분 식별자 "ccm.AnalysisSegment"를 바인딩 할 수 없습니다.

USE [DS] 
GO 

UPDATE [DS].[dbo].[ClientCodeMaster] 
SET ccm.[AnalysisSegment] = ccm1.AnalysisSegment 
FROM [DS].[dbo].[ClientCodeMaster1] as ccm1 
INNER JOIN [DS].[dbo].[ClientCodeMaster] as ccm ON ccm1.CLI_Ref = ccm.CLI_Ref 

ccm1은 업데이트 된 값이있는 사본입니다. 단, 두 테이블은 동일합니다.

무엇이 잘못 되었나요?

다른 모든 답변 나는 제안 된 []을 보았습니다. USE가 제거 된 상태에서 [DS] 참조가 제거 된 상태에서 시도했지만 동일한 오류가 발생합니다. AnalysisSegment 열 ID에서 []을 (를) 제거하려고 시도했습니다. 심지어 드래그 /에 몰래 이상한 제어 문자가 있었다 경우 해당 테이블 스키마에서 열 이름을 떨어

감사합니다 :. O)

답변

0

제대로 별칭을 사용하여 쿼리를 작성 :

UPDATE ccm 
    SET AnalysisSegment = ccm1.AnalysisSegment 
    FROM DS.dbo.[lientCodeMaster ccm INNER JOIN 
     DS.dbo.ClientCodeMaster1 ccm1 
     ON ccm1.CLI_Ref = ccm.CLI_Ref; 

문제는 SELECT 왼쪽의 별칭이 FROM 절에있는 ClientCodeMaster의 버전을 나타냅니다. 그러나 테이블이있어 혼동을 일으키고 있습니다.

SQL Server는 하나의 테이블 만 업데이트 할 수 있기 때문에 별칭을 신경 쓸 필요가 없습니다.

FROM의 첫 번째 테이블을 업데이트중인 테이블로 지정하는 것이 좋습니다. 따라서 테이블의 순서를 바꿨습니다.

+0

건배. ccm1 테이블이 기본 키가되어야하는 중복 된 Refs 스택을 사용하여 퍼지 (fudged)되었다는 점에서 도움이되지 않았으며 기본 키가 삭제되어 기본 키가 제거되었습니다. ... 순간 공지에서 Excel VBA와 SQL간에 전환 할 때의 문제입니다. 개념은 완전히 다른 개념입니다. –

+1

@ JohnnyC하지만 그것은 또 다른 질문입니다 ... 이것은 UPDATE 문을 실행하고 올바른 구문을 사용하지 않는 것에 대한 귀하의 문제에 대한 해답입니다. – gofr1

+0

@ JohnnyC. . . 다른 질문이 있으면 다른 질문으로 질문하십시오. 이러한 변경은 응답을 무효화 할 수 있기 때문에 무례하다. –

관련 문제