Use of SQL Case Statement in SQL Update Statement


IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[SP_UPDATE_INFLUENCE_FACTOR]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1)
DROP PROCEDURE [dbo].[SP_UPDATE_INFLUENCE_FACTOR]
GO

CREATE PROCEDURE [dbo].[SP_UPDATE_INFLUENCE_FACTOR]
    @P_ID_IREA_MANAGER NUMERIC(8,0),
    @P_ID_PRODUCT NUMERIC(8,0),
    @P_IS_POTENITAL NUMERIC(2,0),
    @P_NAC_DEN int
AS
BEGIN

    
    UPDATE dbo.MANAGER_PROD_FACTOR
    SET POTENITAL=CASE @P_IS_POTENITAL
                            WHEN 1 THEN @P_NAC_DEN
                            ELSE POTENITAL
                        END,
        CONTINUOUS=CASE @P_IS_POTENITAL
                            WHEN 0 THEN @P_NAC_DEN
                            ELSE CONTINUOUS
                        END
    WHERE ID_USER = @P_ID_IREA_MANAGER
    and ID_PRODUCT = @P_ID_PRODUCT



    UPDATE dbo.Product_Market_Factors
    SET Product_Market_Factors.Value_Potential=CASE @P_IS_POTENITAL
                                                    WHEN 1 THEN
                                                        case @P_NAC_DEN
                                                            when 10 then Influence_Factor.National_Value_Potential
                                                            when 20 then Influence_Factor.Density_Value_Potential
                                                        end
                                                    ELSE Product_Market_Factors.Value_Potential
                                                END,
        Product_Market_Factors.Value_Continuos=CASE @P_IS_POTENITAL
                                                    WHEN 0 THEN
                                                        case @P_NAC_DEN
                                                            when 10 then Influence_Factor.National_Value_Continuos
                                                            when 20 then Influence_Factor.Density_Value_Continuos
                                                        end
                                                    ELSE Product_Market_Factors.Value_Continuos
                                                END
    from dbo.Influence_Factor
    where Influence_Factor.ID_User = @P_ID_IREA_MANAGER
    and Influence_Factor.ID_Product = @P_ID_PRODUCT
    and Product_Market_Factors.ID_USER = @P_ID_IREA_MANAGER
    and Product_Market_Factors.ID_Product = @P_ID_PRODUCT
    and Influence_Factor.ID_HCA = Product_Market_Factors.ID_HCA
    
    
    SELECT 1 AS [STATUS], convert(varchar, ISNULL(getdate(),0), 121) AS [LATEST_TIME]

END
GO