Сегодня я натолкнулся на эту хранимую процедуру, и меня смущает синтаксис.Он выполняет ОБНОВЛЕНИЕ, и запрос выглядит следующим образом:
DECLARE @TransactionStatus tinyint = 1,
@RedeemedAmount decimal(18,2) = 0,
@PromotionCodeAmount decimal(18,2) = 0,
@EventDetailId int = 0
UPDATE PED
SET @RedeemedAmount = PED.RedeemedAmount = PED.RedeemedAmount + PE.PromoCodeAmount,
@PromotionCodeAmount = PE.PromoCodeAmount,
@EventDetailId = PED.Id
FROM dbo.PromotionEvents AS PE
JOIN dbo.PromotionEventDetails AS PED ON PED.EventId = PE.Id
WHERE PED.Id IN (
SELECT TOP 1 PED.ID
FROM dbo.PromotionEvents AS PE
JOIN dbo.PromotionEventDetails AS PED ON PED.EventId = PE.Id
WHERE PE.Id = @EventId
AND PED.Amount >= PED.RedeemedAmount + PE.PromoCodeAmount
AND PE.StartDate <= GETDATE() AND PE.EndDate > GETDATE()
AND PE.MStatusId = 1
AND PED.MStatusId = 1
ORDER BY PED.CreatedDateTime)
Это только часть всей хранимой процедуры.Мне просто нужно понять, что делает эта часть?
SET @RedeemedAmount = PED.RedeemedAmount = PED.RedeemedAmount + PE.PromoCodeAmount,
Обратите внимание, что на этой строке есть два знака равенства.