2017-05-17 2 views
0

내가 다른 테이블에서 테이블을 업데이트 할 가져 오기 표에서 TSQL 업데이트 테이블 :나는 현재 SQL 서버 2012에서 저장 프로 시저에서 일하고 있어요

내 쿼리는 다음과 같습니다

UPDATE [MySchema].[Delivery] 
SET DeliveryId = (SELECT ID FROM @DeliveryIds) 
WHERE PoolId = 1 

어떻게 든이 쿼리가 작동하지 않습니다 ...이 문제를 해결하는 방법을 알고 있습니까?

감사합니다 :)

+1

@DeliveryIds에 배달에 참여할 수 있습니까? 그렇다면 그렇게하십시오. – Leonidas199x

+0

여기에 몇 가지 정보가 누락되었습니다. '@ DeliveryIds'는 어디에 정의되어 있습니까? 그것에 하나의 기록 만 있습니까? – iamdave

+1

이 질문에 대한 표준 기대치는 입력 데이터 세트 예제 및 출력 데이터 세트 예상치입니다. 매개 변수를 사용하면 값과 원인을 모두 제공하는 것이 일반적으로 허용됩니다. 이 커뮤니티가 문제를 해결하기를 원한다면 더 많은 일을해야합니다. –

답변

1

나는 @DeliveryIds 정의 및 이전 버전 저장 프로 시저에 채워 TABLE 변수라고 가정하기 위하여려고하고있다.

그러나 [전달] 테이블에 대해 해당 테이블을 조인하는 방법은 아직 알지 못합니다. 다음과 같이 할 수 있습니다.

UPDATE Delivery 
SET DeliveryId = DIDS.ID 
FROM @DeliveryIds DIDS 
WHERE Delivery.PoolId = 1 
    and DIDS.????? = Delivery.????? 

두 테이블이 조인되는 모든 열과 물음표를 교체하십시오.

+0

대단히 감사합니다. 많은 도움이됩니다. 귀하의 가정은 맞습니다 ... 아마도 한 가지 질문입니다. 배달보다 @DeliveryIds에 더 많은 항목이 있다면 어떻게해야합니까? 그것은 단지 1 항목을 업데이 트하지만 .... hmm – TimHorton

+1

쿼리는 DeliveryId 테이블에 일치하는 레코드가있는 Delivery 테이블의 레코드 만 업데이트합니다. (????? 열을 사용하여 조인을 기반으로합니다. DeliveryIds가 배달 테이블보다 더 많거나 적은 레코드를 가지고 있으면 괜찮습니다. – seagulledge

관련 문제