Skip to content
Advertisement

Incorrect syntax near the keyword ‘INNER’ in sql update INNER JOIN

I tried to update some records by joining two tables. but It gives me some syntax errors.

Please help me to fix this.

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

Advertisement

Answer

The correct syntax in SQL Server uses 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;

Note that I’ve also introduced table aliases so the query is easier to write and to read.

User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement