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.