2012-04-12 2 views
0

이것은 매우 간단해야하지만 실제 데이터베이스 (백업 됨)를 변경하기 때문에이 권한을 얻고 싶습니다.간단한 UPDATE FROM 쿼리의 버그는 어디에 있습니까?

CSV 파일에서 데이터베이스 테이블로 몇 개의 열 값을 가져 왔습니다.

이제 가져온 소스 테이블 (쿼리의 S)에서 대상 테이블 (쿼리에서 T)을 업데이트하려고합니다. The multi-part identifier "T.account_manager_id" could not be bound.

update DADatabaseMarch2012.dbo.Campaign 

set 
    T.[account_manager_id]=S.[account_manager_id] 
    ,T.[campaign_status_id]=S.[campaign_status_id] 
    ,T.[ad_manager_id]=S.[ad_manager_id] 
    ,T.[advertiser_id]=S.[advertiser_id] 
from 
    [zMarch12CampaignsRestore].[dbo].[March12Eom_Campaigns] S 
    inner join DADatabaseMarch2012.dbo.Campaign T ON S.id = T.id 
+0

가능한 복제본 [ "select from update"쿼리에서 테이블 변수를 사용하는 방법?] (http://stackoverflow.com/questions/8535362/how-to-use-a-table-variable-in- an-update-from-select-query) – JonH

+0

동일한 쿼리는 아니지만 같은 유형의 문제입니다. update 문에서 별명을 사용하십시오. – JonH

답변

6

별칭 이름을 UPDATE 대상으로 사용하여이 방법으로 씁니다.

update T 

set 
    [account_manager_id]=S.[account_manager_id] 
    ,[campaign_status_id]=S.[campaign_status_id] 
    ,[ad_manager_id]=S.[ad_manager_id] 
    ,[advertiser_id]=S.[advertiser_id] 
from 
    [zMarch12CampaignsRestore].[dbo].[March12Eom_Campaigns] S 
    inner join DADatabaseMarch2012.dbo.Campaign T ON S.id = T.id 
+0

이것은 정말로 작동 하는가? 나는 update 절이 from 절과 정확히 같은 테이블을 참조해야한다고 생각한다. 내 대답을 보라. – usr

+0

달콤한!, thanks .. –

+0

@ 예, 예, 작동합니다. 'UPDATE'에서 테이블의 별칭을 지정하려면 ** 별칭 **을 대상으로 – JNK

1

편집 :

나는 오류를 얻을 당신은 절에서 당신에로 업데이트에서 같은 테이블을 참조 할 필요가있다. "update T"라고 씁니다.

+0

나는 S가 여기 T가되어야한다고 생각한다. 나는 편집 할 것이다 ... –

4

T가 대상 테이블이기 때문에 할당 (SET)의 왼쪽에 별칭을 지정할 필요가 없습니다.

관련 문제