0
私はこのSPを単純化できると感じています。 IF...ELSE
を削除し、同じWHERE
-Conditionとマージすることはできますか?これはIF..ELSE
バージョンほど効率的であるかどうかこの `IF ... ELSE`をストアドプロシージャにマージするには?
CREATE PROC [dbo].[UpdateRmaModelWithTacList](
@onlyNoModel bit
)
AS
IF @onlyNoModel=1
BEGIN
UPDATE RMA
SET ModelID = COALESCE(modModel.idModel, 1)
FROM tabTAC INNER JOIN
modModel ON tabTAC.fiModel = modModel.idModel RIGHT OUTER JOIN
RMA ON tabTAC.TAC = SUBSTRING(RMA.IMEI, 1, 8)
WHERE (RMA.ModelID = 1)
END
ELSE
BEGIN
UPDATE RMA
SET ModelID = COALESCE(modModel.idModel, RMA.ModelID)
FROM tabTAC INNER JOIN
modModel ON tabTAC.fiModel = modModel.idModel RIGHT OUTER JOIN
RMA ON tabTAC.TAC = SUBSTRING(RMA.IMEI, 1, 8)
END
RETURN @@ROWCOUNT;
Go
ありがとうございました。パフォーマンスはこのSPの重要な要素ではありません。 –