>source

두 테이블을 결합하여 일부 레코드를 업데이트하려고했습니다. 그러나 그것은 나에게 약간의 구문 오류를 제공합니다.

이 문제를 해결하도록 도와주세요.

UPDATE [GCPurchaseInstalment]
INNER JOIN @Temptable 
ON GCPurchaseInstalment.StripeInvoiceId = @Temptable.InID 
SET GCPurchaseInstalment.AmountReceived = @AMOUNT_RECEIVED,
GCPurchaseInstalment.PaymentFee = @PAYMENT_FEE,
GCPurchaseInstalment.ReceivedDate = @Temptable.paidDate,
GCPurchaseInstalment.StripeInvoiceId = @Temptable.InID,
GCPurchaseInstalment.IsActive = 0 
WHERE GCPurchaseInstalment.GCPurchaseInstalmentId  = @GCPurchaseInstalmentId
AND @Temptable.id = @RowCount


  • 답변 # 1

    SQL Server의 올바른 구문은 FROM :

    UPDATE pi
        SET pi.AmountReceived = @AMOUNT_RECEIVED,
            pi.PaymentFee = @PAYMENT_FEE,
            pi.ReceivedDate = t.paidDate,
            pi.StripeInvoiceId = t.InID,
            pi.IsActive = 0 
        FROM [GCPurchaseInstalment] pi JOIN
              @Temptable t
              ON pi.StripeInvoiceId = t.InID 
        WHERE pi.GCPurchaseInstalmentId = @GCPurchaseInstalmentId AND
              t.id = @RowCount;
    
    

    쿼리를 더 쉽게 작성하고 읽을 수 있도록 테이블 별칭도 도입했습니다.

관련 자료

  • 이전 html - 창 크기를 조정할 때 같은 줄에 버튼을 만드는 방법
  • 다음 c# - EF 데이터를 삽입하지만 모든 GUID가 서로 동일하게 바뀝니다